mysql проверяет, находится ли данная строка в списке через запятую без FIND_IN_SET

SELECT * FROM TABLE_NAME WHERE 'string' in ('string1','string2','string3')

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

1 ответ

SELECT * FROM TABLE_NAME WHERE 'строка' в ('строка1','строка2','строка3');

В приведенном выше запросе string предполагается, что это поле (столбец), поэтому, если бы этот запрос работал, он был бы без одинарных кавычек. ', как это:

SELECT * FROM TABLE_NAME WHERE строка IN ('строка1','строка2','строка3');

Это вернет все строки, где поле string это точно string1 или же string2 или же string3,


Теперь, если вы хотите запросить поле string для значений типа "строка", не совсем совпадающих, вы используете оператор LIKE:

SELECT * FROM TABLE_NAME WHERE string LIKE '% string%';

В приведенном выше запросе все 3 записи, содержащие string1, string2 а также string3 будет возвращен.

Другие вопросы по тегам