这是我最近新接触到的一个函数,
我在我的项目中的应用场景是这样的:
有一个利用类型表,表中有parentId字段和parentIds字段,前者为父级id,后者为多级父级id,在库中都是varchar类型,parentIds由多个父级id拼接而成由”,”分隔.
组长告知我能够应用该函数,就去进行了理解与应用.
语法
FIND_IN_SET(str,strlist)
定义
- 如果字符串str在由多个子链组成的字符串列表strlist中,则返回值的范畴在1到N之间。
- 一个字符串列表就是一个由一些被‘,’符号离开的自链组成的字符串。
- 如果第一个参数是一个常数字符串,而第二个是typeSET列,则FIND_IN_SET()函数被优化,应用比特计算。
- 如果str不在strlist或strlist为空字符串,则返回值为0。
- 如任意一个参数为NULL,则返回值为NULL。这个函数在第一个参数蕴含一个逗号(‘,’)时将无奈失常运行。
strlist:一个由英文逗号“,”链接的字符串,例如:”a,b,c,d”,该字符串模式上相似于SET类型的值被逗号给链接起来。
示例:SELECT FIND_IN_SET(‘b’,’a,b,c,d’); //返回值为2,即第2个值
例子
有个文章表外面有个type字段,它存储的是文章类型,有 1头条、2举荐、3热点、4图文等等 。
当初有篇文章他既是头条,又是热点,还是图文,type中以 1,3,4 的格局存储。那咱们如何用sql查找所有type中有4的图文类型的文章呢?
这就能够应用 find_in_set 了。以下为援用的内容:select * from article where FIND_IN_SET('4',type)
发表回复