表字段类型字符串可以包含逗号分隔的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/