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
будет возвращен.