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 那么它会产生问题
在以下情况下是否可以使用单个查询检索记录:
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 那么它会产生问题