MySql中FIND_IN_SET()函数用法

前端时间在写SQL的时候发现需要使用 函数库中的 find_in_set() 函数,那么今天我们就来聊聊这个函数库的用法吧。

select FIND_IN_SET(str,strlist) from DUAL

find_in_set在英文单词上了解来看他是 --- > 有请我们的翻译上场

 你看的没错, 在集合中查找, 那么我们是怎么在集合中查找的呢?

看这个函数的参数 FIND_IN_SET(str,strlist) 有两个, 一个是str, 一个是strlist

从单词的英文意义上来说, strlist是个那个集合,那么既然是集合,为什么会是个串呢, 所以它应该是有格式要求的。

大概意义就是从strList中找str串, 如果找到了, 就返回找到的那个strlist具体的那个坐标位置,没找到的话返回0, 具体的话看下面的SQL查询。

上图!!!

select FIND_IN_SET("zhangsan","zhangsan,lisi") as findName from DUAL

我们可以看到, zhangsan返回了第一个位置,lisi返回了第二个位置,  后面的 list 其实他是通过 逗号 进行分割的,这里注意一下格式。

通过数据观察到, 其实后者(strlist) 就是一个已 逗号 分割的 集合 然后去全匹配 前者(str)字符串, 匹配到了就返回具体对应的  坐标。

这些都是正确的数据, 那么我们展示几种不正确的数据。

select FIND_IN_SET("zhang","zhangsan,lisi") as findName from DUAL

匹配逗号前后的部分的数据, 不正确 

 后者是 中文逗号,  list的分割应该不正确。

一下几种是出现null的情况, 大家得注意了

 

 

 这种前后本身的字符串本身就是null, 也不能算错, 本身就是null

  特别注意: 就是strlist中, 他是以 英文逗号 进行分割的哟, 在开发的过程中千万不要大意,要时时刻刻进行数据的校验呦

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值