下载鸥 > 网站下载 > 开发教程 > Mysql数据库

MySQL查找字符串FIND_IN_SET()函数介绍

383 2021-05-23 10:00:02

收藏
FIND_IN_SET()是一个MySQL函数,通过使用本函数,我们可以返回指定字符串在以逗号分隔的字符串列表中的位置。

MySQL查找字符串FIND_IN_SET()函数介绍

MySQL FIND_IN_SET函数简介

MySQL提供了一个名为FIND_IN_SET()的内置字符串函数,允许您在逗号分隔的字符串列表中查找指定字符串的位置。
 

FIND_IN_SET()函数语法

FIND_IN_SET(needle,haystack);

FIND_IN_SET()函数接受两个参数:

第一个参数needle是要查找的字符串。

第二个参数haystack是要搜索的逗号分隔的字符串列表。

FIND_IN_SET()函数根据参数的值返回一个整数或一个NULL值:

如果needle或haystack为NULL,则函数返回NULL值。

如果needle不在haystack中,或者haystack是空字符串,则返回零。

如果needle在haystack中,则返回一个正整数。

请注意,如果needle包含逗号(,),该函数将无法正常工作。 此外,如果needle是一个常量字符串,而且haystack是一个类型为SET的列,MySQL将使用位算术优化。
 

实例分析in、find_in_set、like的区别

1.in查询相当于多个or条件的叠加
select * from user where user_id in (1,2,3);

等效于
select * from user where user_id = 1 or user_id = 2 or user_id = 3;

2.find_in_set基本语法

FIND_IN_SET(str,strlist)
str 要查询的字符串,strlist 字段名 参数以”,”分隔 如 (1,2,6,8)

如果str不在strlist 或strlist 为空字符串,则返回值为 0 。如任意一个参数为NULL,则返回值为 NULL。这个函数在第一个参数包含一个逗号(‘,’)时将无法正常运行。
 
+----+---------+-----------+-------------+
| id | user_id | follow_id | follow_time |
+----+---------+-----------+-------------+
| 13 | 15      | 16,15     |  1478096138 |
| 14 | 15      | 17        |  1478177725 |
| 15 | 15      | 19        |  1478181035 |
+----+---------+-----------+-------------+

比如这张表,通过如下命令是查不到的:
SELECT * from test where FIND_IN_SET('5',follow_id);

返回值为null,因为follow_id中没有“5”这个值,它不同于 like 模糊查询,它是以“,”来分隔值

3.like是广泛的模糊匹配,字符串中没有分隔符,Find_IN_SET 是精确匹配,字段值以英文”,”分隔。

这里我们还是以上方的数据为例,查询“5”这个值
SELECT * from test where follow_id like '%5%';

这个时候,就会返回13为13的这组数据
+----+---------+-----------+-------------+
| id | user_id | follow_id | follow_time |
+----+---------+-----------+-------------+
| 13 | 15      | 16,15     |  1478096138 |
+----+---------+-----------+-------------+

以上就是关于find_in_set函数的介绍与find_in_set、in、like的区别介绍。

本文地址:https://xzo.com.cn/develop/mysql/978.html

有帮助,很赞!

信息来源:Jxinx
导出教程 下载word版教程
发表评论 共有条评论
关于Mysql数据库


MySQL是一款安全、跨平台、高效的,并与 PHP、Java 等主流编程语言紧密结合的数据库系统。该数据库系统是由瑞典的 MySQL AB 公司开发、发布并支持,由 MySQL 的初始开发人员 David Axmark 和 Michael Monty Widenius 于 1995 年建立的。

推荐Mysql数据库开发教程
什么是SQL注入?如何防注入?
什么是SQL注入?如何防注入?

简言之,SQL是一种结构化查询语言,使我们有能力访问和操作数据库。一些黑客便...

9 495
怎样让Mysql支持emoji和符号表情?
怎样让Mysql支持emoji和符号表情?

emoji表情在当下已经十分流行,微信名中使用了emoji表情包的也大有人在。我们...

16 764
怎样用phpMyAdmin批量导入Excel内容到MySQL数据库?
怎样用phpMyAdmin批量导入Excel内容到MySQL数据库?

近期,有客户需要将excel数据导入到MySQL数据库,这是一个比较常用的功能,操作起...

12 613
MySQL索引介绍
MySQL索引介绍

MySQL索引的建立对于MySQL的高效运行是很重要的,索引可以大大提高MySQL的检...

29 617
MySQL怎样通过身份证号码计算用户年龄?
MySQL怎样通过身份证号码计算用户年龄?

实名制站点往往需要用到身份证号码,有了身份证号码就需要获取用户年纪或做展...

1 580
MySQL数据库误删除了要怎么恢复?
MySQL数据库误删除了要怎么恢复?

MySQL误删除这种事出现的概率不高,但如果哪天误删除了,总不能真的跑路吧?那么,M...

0 422
MySQL查找字符串FIND_IN_SET()函数介绍
MySQL查找字符串FIND_IN_SET()函数介绍

FIND_IN_SET()是一个MySQL函数,通过使用本函数,我们可以返回指定字符串在以逗...

0 382
textarea带换行存入mysql数据库的方案(php/js)
textarea带换行存入mysql数据库的方案(php/js)

textarea输入框如果带有换行符,在存入数据库时需要将换行符\n转换为<br>,在...

0 583
推荐插件
帝国cms在线考试系统模板插件
帝国cms在线考试系统模板插件

一直没看到好用的帝国cms在线考试插件,所以自己开发了一款。在线考试插件用...

0 1284
帝国cms批量添加后台用户插件
帝国cms批量添加后台用户插件

使用帝国cms的企业用户、新闻资讯类站点的用户很多,此类站点很多时候需要有...

0 782
帝国cms百度AI图像清晰度增强api接口对接插件
帝国cms百度AI图像清晰度增强api接口对接插件

通过本插件,可以实现帝国cms网站对接百度云api实现图像清晰度增强的功能。经...

0 524
帝国cms纳米数据接口(足球比赛中最新数据)
帝国cms纳米数据接口(足球比赛中最新数据)

帝国cms 对接纳米数据(www.nami.com)接口,本接口主要接收、整理足球比赛实时数...

0 423
帝国cms百度文字识别ocr接口对接插件
帝国cms百度文字识别ocr接口对接插件

许多网站会做一些小功能小插件给客户使用以增强用户黏性,比如图片转文字,这种...

0 471
帝国cms网站会员登录与退出历史记录日志插件
帝国cms网站会员登录与退出历史记录日志插件

帝国cms默认只有上次登录时间与ip,没有一个记录清单,所以今天,我们分享这个帝...

0 406
帝国cms多栏目多数据表自动审核推送插件
帝国cms多栏目多数据表自动审核推送插件

本插件基于帝国cms帝国cms每日自动审核插件,在自动审核指定条数信息的基础上...

0 926
帝国cms自动生成文章新闻目录插件下载
帝国cms自动生成文章新闻目录插件下载

用户体验是我们的需求,百度蜘蛛的认可更是我们的需求。毕竟,没有收录排名,何来...

0 1126
客服QQ:341553759
扫码咨询 常见问题 >
官方交流群:90432500
点击加入