find_in_set这个是mysql的一个函数,见得比较少,今天笔者就说说它的用法。
find_in_set函数返回指定字符串在以逗号分隔的字符串列 表中的位置。
find_in_set函数接收两个参数:
第一个参数needle是要查找的字符串。
第二个参数haystack是要搜索的逗号分隔的字符串列表。
比如一条新闻 ,属于三个分类,分别是:国际新闻(type:1),最新新闻(type:2),世界新闻(type:12)
就说这个意思哈,实际设计应该不会这么玩,重在理解~
那么,type字段保存的应该为 :1,2,12
如果想要查找新闻表中(news)中属于最新新闻的所有记录,就写为:
select * from news where find_in_set(2, type);
值得注意的是,和like不同,find_in_set是精确匹配,我 们要查找的是type为2的,不会把type为12的查出来,所以和like比,它的执行效率要高的多,如果有类似的需求,强烈推荐用find_in_set代替like使用。
评论前必须登录!
注册