博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mysql 的 find_in_set函数使用方法
阅读量:6623 次
发布时间:2019-06-25

本文共 1205 字,大约阅读时间需要 4 分钟。

举个例子来说: 

有个文章表里面有个type字段,他存储的是文章类型,有 1头条,2推荐,3热点,4图文 .....11,12,13等等 


现在有篇文章他既是 头条,又是热点,还是图文, 


type中以 1,3,4的格式存储. 


们我们如何用sql查找所有type中有4图文标准的文章呢?? 



这就要我们的find_in_set出马的时候到了. 


以下为引用的内容: 


select * from article where FIND_IN_SET('4',type) 


---------------------------------------------------------- 

mysql手册中find_in_set函数的语法: 


FIND_IN_SET(str,strlist) 


假如字符串str 在由N 子链组成的字符串列表strlist 中,则返回值的范围在 1 到 N 之间。 

一个字符串列表就是一个由一些被‘,’符号分开的子链组成的字符串。如果第一个参数是一个常数字符串,而第二个是type SET列,则   FIND_IN_SET() 函数被优化,使用比特计算。 

如果str不在strlist 或strlist 为空字符串,则返回值为 0 。如任意一个参数为NULL,则返回值为 NULL。这个函数在第一个参数包含一个逗号(‘,’)时将无法正常运行。 


mysql> SELECT FIND_IN_SET('b','a,b,c,d'); 


-> 2 因为b 在strlist集合中放在2的位置 从1开始 

-------------------------------------------------------- 

select FIND_IN_SET('1','1'); 返回 就是1 这时候的strlist集合有点特殊 只有一个字符串 其实就是要求前一个字符串 一定要在后一个字符串集合中 才返回 大于0的数 


select FIND_IN_SET('2','1,2');返回2 

select FIND_IN_SET('6','1'); 返回0 

---------------------------------------------------------- 


注意: 

select * from treenodes where FIND_IN_SET(id,'1,2,3,4,5'); 

使用find_in_set函数一次返回多条记录 


id 是一个表的字段 然后每条记录分别是id等于1,2,3,4,5的时候 

有点类似in (集合) 

select * from treenodes where id in (1,2,3,4,5);

本文转自 netcorner 博客园博客,原文链接:http://www.cnblogs.com/netcorner/p/4218374.html   ,如需转载请自行联系原作者

你可能感兴趣的文章
word双栏排版,最后一页由于分节符造成最后一页是空白页,删除分节符双栏就变成了单栏...
查看>>
手机web不同屏幕字体大小高度自适应
查看>>
服务器端口及连接及应用程序间的关系
查看>>
Android监听HOME键的最简单的方法
查看>>
Java 数组
查看>>
inotify+rsync实现实时同步
查看>>
C#GUID
查看>>
ASP.NET 5 入门(1) - 建立和开发ASP.NET 5 项目
查看>>
spring+activemq中多个consumer同时处理消息时遇到的性能问题
查看>>
git clone 遇到的坑
查看>>
linux系统/var/log目录下的信息详解
查看>>
Android中利用LinearLayout继承实现ImageButton 转
查看>>
图片处理--边缘高亮
查看>>
Linux计划任务Crontab实例详解教程
查看>>
android之布局
查看>>
自定义服务器控件(处理不同的浏览器)
查看>>
解决IE6-IE7下li上下间距
查看>>
配置级别greenplum 可用空间计算
查看>>
聚集索引更新后会不会马上重新排序
查看>>
幸运大抽奖
查看>>