sql поиск слова в строке до запятой

manaz
На сайте с 13.12.2013
Offline
61
273

Приветствую всех.

Господа. Столкнулся с такой проблемой как:

Есть база городов но в ней идет строка с Названием города и через запятую область его.

К примеру:

$query = "SELECT * FROM #__virtuemart_city WHERE City= '" . $cityName. "' ";

Как сделать поиск именно до запятой. Пробовал LIKE

$query = "SELECT * FROM #__virtuemart_city WHERE City LIKE '" . $cityName . "%' ";

Но он игнорирует символы.

Мне нужно найти в строке первое слово до запятой в этой же строке. Гуглил уже пол дня не чего не могу найти подходящего.

S
На сайте с 30.09.2016
Offline
469
#1

Базу сделать правильную. Название города – в одной колонке, область – в другой.

Отпилю лишнее, прикручу нужное, выправлю кривое. Вытравлю вредителей.
manaz
На сайте с 13.12.2013
Offline
61
#2
Sitealert:
Базу сделать правильную. Название города – в одной колонке, область – в другой.

Вопрос в другом был.

S
На сайте с 30.09.2016
Offline
469
#3
manaz:
Вопрос в другом был.

Это от того, что структура базы неверная. Сделайте правильно – и этот вопрос отпадёт сам собой.

O
На сайте с 30.09.2019
Offline
18
#4
manaz:
Пробовал LIKE

Через оператор LIKE найдет, если кодировки совпадают. Впереди нет символов? Или регистр?


$query = "SELECT * FROM #__virtuemart_city WHERE `City` LIKE '%" . $cityName . "%' ";
H
На сайте с 21.08.2004
Offline
122
#5
Мне нужно найти в строке первое слово до запятой в этой же строке

как-то так


select SUBSTRING(field1,0,LOCATE(',',field1) ) as f from table1 where field1 like '%,%'

возможны синтаксические ошибки, пишу для примера

Есть что-то, что мы не знаем, но узнать это мы не можем.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий