FIND_IN_SET для части строки в Mysql

Мне нужно сделать запрос к таблице в моей базе данных. До сих пор я использовал FIND_IN_SET, потому что у меня были такие строки: "twitter,bycicle,car".

Тогда я мог бы искать по FIND_IN_SET("twitter", nameOfColumn)

Но теперь мне нужно искать только часть каждого "набора", например: "twitter>10,bycicle,car"

Он по-прежнему отлично работает для велосипеда и автомобиля, но если мне нужно найти твиттер, я не могу его найти. Каков правильный способ сделать это?


person Biribu    schedule 04.12.2014    source источник
comment
Если у вас есть другой символ (не запятая) внутри строки, поэтому FIND_IN_SET() не работает, вместо этого вы можете использовать from substring_index.   -  person Mobasher Fasihy    schedule 04.12.2014
comment
Можете ли вы показать мне пример?   -  person Biribu    schedule 04.12.2014
comment
Эта ссылка — это та же проблема, на которую я ответил в прошлом, может помочь вам.   -  person Mobasher Fasihy    schedule 04.12.2014


Ответы (2)


Следующий запрос даст вам то, что вы хотите, однако используйте его с осторожностью в отношении имеющихся у вас данных:

SELECT *
FROM table1
WHERE col1 RLIKE 'twitter'

Рабочая скрипка: http://sqlfiddle.com/#!2/66f538/1

person Aziz Shaikh    schedule 04.12.2014
comment
Из-за этого я не хотел использовать LIKE, возможно, есть какие-то похожие строки, и это создает путаницу. Если у меня нет другого выхода, я воспользуюсь им - person Biribu; 04.12.2014
comment
@Biribu, чтобы немного улучшить его, вы также можете попробовать это: RLIKE 'twitter.*,?' - person Aziz Shaikh; 04.12.2014
comment
У меня проблемы со словами короче, чем содержащиеся в БД. Если я попытаюсь с твитом, я получу взамен ряд... - person Biribu; 04.12.2014