Получить все символы перед пробелом в MySQL



Я хотел бы получить все символы в поле перед пробелом



например, если field1 и "chara ters"



Я хочу, чтобы он вернулся "chara"



как бы выглядел этот оператор select?

688   3  

3 ответов:

SELECT LEFT(field1,LOCATE(' ',field1) - 1)

обратите внимание, что если рассматриваемая строка не содержит пробелов, это вернет пустую строку.

ниже есть еще один способ, который работает и может показаться немного проще для некоторых. Он использует SUBSTRING_INDEX MySQL function. 1 возвращает все до первого пробела, а -1 возвращает все после последнего пробела.

это возвращает 'chara':

SELECT SUBSTRING_INDEX( field1, ' ', 1 )

это возвращает 'ters':

SELECT SUBSTRING_INDEX( field1, ' ', -1 )

подробности

положительное значение будет искать указанный вами символ с начала строки, а отрицательное значение будет начинаться с конца строки. Значение числа указывает количество указанного символа для поиска перед возвратом оставшегося фрагмента строки. Если символ, который вы ищете, не существует, будет возвращено все значение поля.

в этом случае a -2 вернет все справа от второго до последнего пробела, которого не существует в этом примере, поэтому будет возвращено все значение поля.

вам понадобится строковые операции для этого. Предполагая, что каждое поле имеет хотя бы один символ пробела:

SELECT SUBSTR(field1, 0, LOCATE(' ', field1)) FROM your_table;

безопасный подход:

SELECT IF(
    LOCATE(' ', field1),
    SUBSTR(field1, 0, LOCATE(' ', field1)),
    field1
) FROM your_table;

Comments

    Ничего не найдено.