mysql字符串函数:FIND_IN_SET()使用方法详解

mysql字符串函数:FIND_IN_SET()使用方法详解

语法:

FIND_IN_SET(str,strlist)

  • 第一个参数str是要查找的字符串。
  • 第二个参数strlist是要搜索的逗号分隔的字符串列表。

 

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

 

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

 

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

 

案例:

现在有一张users表,如下:

id user_name emails
1 小张 a@fujieace.com,b@fujieace.com,c@fujieace.com
2 小王 aa@fujieace.com,bb@fujieace.com,cc@fujieace.com
3 李四 aa@fujieace.com,b@fujieace.com,d@fujieace.com
4 王五 aa@fujieace.com,e@fujieace.com,f@fujieace.com

 

问:我们如何用sql查找所有“emails”字段中有“aa@fujieace.com”的用户?

 

答:用以下sql即可实现;

 
  1. select * from users where FIND_IN_SET(‘aa@fujieace.com’,emails);

 

拓展知识:

 
  1. mysql> SELECT FIND_IN_SET(‘b’,’a,b,c,d’);
  2. -> 2 

因为:b 在strlist集合中放在2的位置,计算从1开始,不是从0开始;

 

 
  1. select FIND_IN_SET(‘1′,’1’);

返回值:就是1;

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

 

 
  1. select FIND_IN_SET(‘2′,’1,2’);返回2
  2. select FIND_IN_SET(‘6′,’1’); 返回0

 

注意事项:

 
  1. select * from fujieace where FIND_IN_SET(id,’1,2,3,4,5′);

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

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

 

有点类似in (集合)

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

转载: https://www.fujieace.com/mysql/functions/find_in_set.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/112300.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Servlet的工作原理简介

    Servlet的工作原理简介你使用的本地web服务器或者买的别的服务器都一样的原理,鼠标点击事件发出一个HTTP请求以后,服务器会将请求移交给servlet容器,servlet容器首先对所请求的URL进行解析并根据web.xml配置文件找到相应的处理servlet,同时将request、response对象传递给它,servlet通过request对象可知客户端的请求者、请求信息以及其他的信息等,servlet在处理完请求后…

    2022年9月1日
  • hibernate作用_json.parsearray(string,class)

    hibernate作用_json.parsearray(string,class)Hibernate的query.uniqueResult();转换异常

    2022年9月30日
  • linux下pycharm安装教程_ubuntu激活成功教程pycharm

    linux下pycharm安装教程_ubuntu激活成功教程pycharmlinux版本为redhat8.2已经内置python解释器,所以可直接下载pycharm就可以[root@westos~]#python3如何安装Pycharm官网下载地址根据自己的需求下载社区版或者专业版在新建项目即可,选择已有的python解释器简单操作、设置创建文件快捷键:Alt+Insert进入Pycharm的设置界面ctrl+alt+s设置背景颜色设置编辑器的字体大小和间距…

    2022年8月27日
  • 几何菱形包是什么牌子_菱形数学

    几何菱形包是什么牌子_菱形数学首页题库状态天梯课程比赛排行榜武则天 题目描述我的提交所有提交换下一题10049:凯的菱形时间限制:1000MS内存限制:131072KB提交总数:36AC总数:20问题描述打完一波农药,安琪拉感叹道:凯呀凯,你真是又帅又厉害!!!凯是真帅,他的菱形也是帅:最外层是字母A,然后里一层是B,再里一层是C。。。输入格式第一行输入整数n(1&lt…

    2022年9月1日
  • oracle 修改表名

    oracle 修改表名ALTER TABLE AA RENAME TO BB;

    2022年5月13日
  • java实体entity转map对象[通俗易懂]

    java实体entity转map对象[通俗易懂]实体转对象方法一,一句搞定,直接返回map对象:importorg.springframework.cglib.beans.BeanMap;BeanMap.create(entityObj);方法二:利用反射——详见原文

    2022年5月5日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号