SELECT * FROM TABLE_NAME WHERE 'string' in ('string1','string2','string3')
它没有给出正确的结果 find_in_set 只给出了准确的结果。如果有任何方法可以在不使用 find_in_set
最佳答案
SELECT * FROM TABLE_NAME WHERE 'string' in ('string1','string2','string3');
在上面的查询中,string
应该是一个字段(列),因此,如果您要让此查询工作,它将不带单引号 '
,像这样:
SELECT * FROM TABLE_NAME WHERE string IN ('string1','string2','string3');
这将返回字段 string
恰好为 string1
或 string2
或 string3
的所有行。
现在,如果您想在字段 string
中查询诸如“string”之类的不完全匹配的值,那么您可以使用 LIKE operator :
SELECT * FROM TABLE_NAME WHERE string LIKE '%string%';
在上面的查询中,将返回包含 string1
、string2
和 string3
的所有 3 条记录。
关于mysql 检查给定字符串是否在逗号分隔列表中,没有 FIND_IN_SET,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52055111/