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

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之间有空格,则会产生问题

10-04 10:44