表字段类型字符串可以包含逗号分隔的 int 值,例如“1,6,2,13”或“3,9,2”或“1,3”
如何选择包含以下内容的所有条目: “3”没有得到“13”?
一个select * from table where field like '%3%'
在这种情况下将不起作用。
也不是like '%,3,%
目前我正在尝试所有组合: '3,%' 、 '%,3' 、 '%,3,%' ,但我想知道是否有更简单的方法。
最佳答案
LIKE
不适用于精确搜索,最好使用 REGEX 来获得精确搜索
SELECT * FROM table WHERE
field REGEXP '[[<:]]3[[:>]]'
或者您也可以使用FIND_IN_SET()
函数
SELECT * FROM tblname WHERE
FIND_IN_SET('3', field ) > 0
注意:如果标签不是对称逗号分隔,FIND_IN_SET()
函数将无法正常工作,如果标签之间有空格,则会产生问题
关于mysql - 如何检查mysql中的字段是否包含特定值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28314969/