在以下情况下,是否可以使用单个查询检索记录:
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
之间有空格,则会产生问题