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