如何使用逗号分隔值在字段上设置'where'子句?

Rod*_*est 2 mysql sql select

我有一个db表,其中包含以value1,value2,value3,value4格式存储的值的字段.我想找到这个字段包含一个定义值的所有行,例如.value3.

如何执行查询以搜索像这样的字段中的值?

Joh*_*Woo 9

使用 FIND_IN_SET()

SELECT  *
FROM    tableName
WHERE   FIND_IN_SET('value3', 'comma separated value here') > 0
Run Code Online (Sandbox Code Playgroud)

资源

MySQL Docs的描述:

如果字符串str位于由N个子字符串组成的字符串列表strlist中,则返回1到N范围内的值.字符串列表是由用","字符分隔的子字符串组成的字符串.如果第一个参数是常量字符串而第二个参数是SET类型的列,则FIND_IN_SET()函数被优化为使用位算术.如果str不在strlist中,或者strlist是空字符串,则返回0.如果任一参数为NULL,则返回NULL.