定义
FIND_IN_SET():函数返回指定字符串在以逗号分隔的字符串列表中的位置。FIND_IN_SET() 是精确匹配。
FIND_IN_SET()函数接受两个参数:
- 第一个参数needle是要查找的字符串。
- 第二个参数haystack是要搜索的逗号分隔的字符串列表,也就是表字段。
小试牛刀
select * from read_log_a where find_in_set('收敛之道', article)//可以获取到数据
select * from read_log_a where find_in_set('收敛', article)//不可以获取到数据,不是精确匹配
find_in_set运用场景:
- 每个用户有多个标签,快速的获取某个标签下的所有用户。
- 每篇文章有多个标签,快速的获取某个标签下的所有文章。
实战演习
查找会做饭的用户,即查找字段user_tags中包含1的行数据:
SELECT * FROM user_tag WHERE find_in_set(‘1’,user_tags)