Согласно MySQL Reference Manual - The SET Typeразница между WHERE FIND_IN_SET (...)> 0 и ГДЕ FIND_IN_SET (...)
Обычно, вы поиск значений SET с помощью функции FIND_IN_SET() или LIKE оператора:
mysql> SELECT * FROM tbl_name WHERE FIND_IN_SET ('значение', set_col)> 0;
Согласно MySQL Reference Manual
FIND_IN_SET (ул, strlist)
возвращает значение в диапазоне от 1 до N, если строка ул находится в списке строк strlist, состоящих из N подстрок. Строковый список - это строка, состоящая из подстрок, разделенных символами «,». Если первый аргумент является константой, а второй - столбцом типа SET, функция FIND_IN_SET() оптимизирована для использования битовой арифметики. Возвращает 0, если str не в strlist или strlist - это пустая строка. Возвращает NULL, если любой аргумент равен NULL.
Поэтому, я думаю, что
SELECT * FROM tbl_name WHERE FIND_IN_SET('value',set_col)
работает должным образом, когда вы хотите, чтобы найти значение из набора.
Так почему же пример из Справочного руководства по MySQL явно сравнивается с >0
?
Есть ли разница?
Фактически оба эти же. – 1000111