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

我想做的是选择出现关键字黄色的所有记录。结果应返回两条记录"第一和第二"

最好使用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 ,之间有空格,那么就会产生问题