php、mysql 对多列不同值的单个查询

php, mysql single query for multipe columns distinct values

在以下情况下是否可以使用单个查询检索记录:

id  title         tags
1   First         yellow,blue
2   Second        green, yellow,red,
3   Third         black,purple

我想做的是select所有出现关键词yellow的记录。 结果应该return两条记录"First and Second"

最好使用 REGEX 进行精确搜索

SELECT * FROM tblname WHERE 
    tags REGEXP '[[<:]]yellow[[:>]]'

或者你也可以使用FIND_IN_SET()函数

SELECT * FROM tblname WHERE 
    FIND_IN_SET('yellow', tages) > 0

注意:如果标签不是对称逗号分隔,FIND_IN_SET() 函数将无法正常工作,如果 tags, 之间有白色 space 那么它会产生问题