我有一个db表,其中的字段值以value1,value2,value3,value4
格式存储。
我想找到这个字段包含一个定义值的所有行,例如。 value3
。
如何执行查询以搜索像这样的字段中的值?
答案 0 :(得分:8)
使用FIND_IN_SET()
SELECT *
FROM tableName
WHERE FIND_IN_SET('value3', 'comma separated value here') > 0
SOURCE
MySQL Docs的描述:
如果字符串str在,则返回1到N范围内的值 字符串列表strlist由N个子串组成。字符串列表是 由“,”字符分隔的子串组成的字符串。如果 第一个参数是一个常量字符串,第二个参数是一个类型的列 SET,FIND_IN_SET()函数被优化为使用位运算。 如果str不在strlist中,或者strlist是空字符串,则返回0。 如果任一参数为NULL,则返回NULL。
答案 1 :(得分:0)
您可以使用like
:
where concat(',', field, ',') like '%,value3,%'