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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 微信小程序–获取已发布微信小游戏和小程序源码「建议收藏」

    最近一直在做微信小游戏的开发,发现了一个好玩的事,在这里记录一下。这段时间一直在做一些小游戏,小程序的开发,但有的时候会发现性能上总是不那么的尽如人意(毕竟我这小菜鸟水平有限),于是就想到,想要看看别的大神们是怎么处理这些问题的(其实就是想看一下大神们的代码怎么写!)。但是,有一个问题就是小游戏或者小程序和H5、网页不一样,不能直接F12看代码,要怎么才能拿他们的代码呢?  …

    2022年4月14日
    132
  • 《剑指offer》– 栈的压入与弹出序列、把字符串转化为整数、扑克牌顺子、孩子们的游戏(圆圈中最后剩下的数)

    《剑指offer》– 栈的压入与弹出序列、把字符串转化为整数、扑克牌顺子、孩子们的游戏(圆圈中最后剩下的数)

    2021年10月3日
    40
  • 执行top命令(linux命令详解之df命令)

    首先介绍top中一些字段的含义:VIRT:virtualmemoryusage虚拟内存1、进程“需要的”虚拟内存大小,包括进程使用的库、代码、数据等2、假如进程申请100m的内存,但实际只使用了10m,那么它会增长100m,而不是实际的使用量RES:residentmemoryusage常驻内存1、进程当前使用的内存大小,但不包括swapout2、包含其他进程的共享3、如果申请100…

    2022年4月11日
    122
  • 焦点科技怎么老是招人_选错对焦点,错失好照片,你了解相机的对焦吗?

    焦点科技怎么老是招人_选错对焦点,错失好照片,你了解相机的对焦吗?对焦一直是衡量相机的性能的重要参数,在很长的一段时间里,我们因为相机的对焦系统不够强大,而习惯的单点手动设置对焦。而近几年微单相机的对焦快速发展,眼部自动对焦已经比较成熟,而我们的习惯也应该发生改变……选错对焦点,错失好照片多好的构图,妹子笑的多甜,然而就是因为焦点没有对准,成功的变成一张废片。很多人和我抱怨过,什么镜头跑焦,机身跑焦,可是你们有没有从自身找过原因,当真找到正确的焦点,准确合…

    2022年6月6日
    331
  • java如何输入字符串?「建议收藏」

    java如何输入字符串?「建议收藏」关于java如何输入字符串的文章早已是非常多了,本文是对我个人过往学习java,理解及应用java字符串的一个总结。此文内容涉及java如何输入字符串等相关问题,希望对大家有所帮助。java如何输入字符串?首先,导入java.util.*包。然后,你需要新建一个读取标准输入(键盘)的扫描器对象。现在,你可以从键盘输入字符串了。以上这一行把键盘输入的一行字符串读取到变量s中。请看一个完整的简单示例:以上就是java如何输入字符串的详细内容。我整理了一些ja

    2022年7月16日
    9
  • [转] 2016 JavaScript 发展现状大调查[通俗易懂]

    [转] 2016 JavaScript 发展现状大调查[通俗易懂][转] 2016 JavaScript 发展现状大调查

    2022年4月20日
    43

发表回复

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

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