Mysql 函数 find_in_set
首先举个例子来说:
有个文章表里面有个type字段,它存储的是文章类型,有 1头条、2推荐、3热点、4图文等等 。
现在有篇文章他既是头条,又是热点,还是图文,type中以 1,3,4 的格式存储。那我们如何用sql查找所有type中有4的图文类型的文章呢??
这就要我们的 find_in_set 出马的时候到了。以下为引用的内容:
select * from article where FIND_IN_SET('4',type)
原生SQL语句进行查询示例:
Db::table('user')->where('find_in_set(1,ids)')->select();
查询表达式示例:
Db::table('user')->where('exp','FIND_IN_SET(1,ids)')->select();
数组条件查询形式示例:
$where[]=['exp','FIND_IN_SET(2,ids)'];
惭愧,这么久还是第一次了解到这个函数,以前遇到类似的需求我都是用自己的土办法解决的,就是存入数据库的时候,在首尾都加上逗号(',3,4,5,')
然后用模糊查询
'%,'.$search.',%'
哈哈哈,想起来就好笑
所以真是活到老学到老,不知道还有多少函数是能用来优化我现在的代码的
附上mysql函数链接
https://www.runoob.com/mysql/mysql-functions.html