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

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

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

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

Я хочу, чтобы он возвращал "chara"

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

4b9b3361

Ответ 1

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

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

Ответ 2

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

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

SELECT SUBSTRING_INDEX( field1, ' ', 1 )

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

SELECT SUBSTRING_INDEX( field1, ' ', -1 )

Подробнее

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

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

Ответ 3

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

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

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

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