【MySQL】MySQL的find_in_set的使用例子
> 参考的优秀文章
> 简单的例子
这个函数的功能是,在第二个参数中寻找第一个参数,并返回第一个参数所在的位置,不存在则返回0。其中,第二个参数是以“,”分隔的字符串。
-- 1
select find_in_set('1', '1,2,3,4,5,6');
-- 2 select find_in_set('2', '1,2,3,4,5,6');
-- 0 select find_in_set('7', '1,2,3,4,5,6');
-- 0 select find_in_set('2', '1,21,3,4,5,6');
-- 0 select find_in_set('2', '');
-- 0 select find_in_set('2', '1,2 ,3,4,5,6');
-- NULL select find_in_set(NULL, '1,2,3,4,5,6');
-- NULL select find_in_set(1, NULL);
-- 0 select find_in_set('2,3', '1,2,3,4,5,6');
> 可替换分隔字符串的部分使用功能
有时候,我们获取了“2,3,4”字符串,我们想把它根据“,”分隔成5行,每行分别是2、3、4。
这时候,我们自然想到类似Java的String的split的函数,可是MySQL貌似并无类似的函数。(我没有找到,如果有的话请通知我哦)
而实际上,“2,3,4”是有一定业务意义的,或者说出自某一张表的,那么可以使用find_in_set把“2,3,4”从对应的表中查找出来。一般来说,该键有索引,从大量的数据找出少量的数据,效率是很高的。
下面是简单的例子:

select t.id from ( select 1 as id, 'nick' as name union all select 2 as id, 'viki' as name union all select 3 as id, 'robin' as name union all select 4 as id, 'teng' as name union all select 5 as id, 'mike' as name union all select 6 as id, 'will' as name ) t where find_in_set(t.id, '2,3,4') > 0;
作者:Nick Huang 博客:http://www.cnblogs.com/nick-huang/
本博客为学习、笔记之用,以笔记形式记录学习的知识与感悟。学习过程中可能参考各种资料,如觉文中表述过分引用,请务必告知,以便迅速处理。如有错漏,不吝赐教。
如果本文对您有用,点赞或评论哦;如果您喜欢我的文章,请点击关注我哦~
本博客为学习、笔记之用,以笔记形式记录学习的知识与感悟。学习过程中可能参考各种资料,如觉文中表述过分引用,请务必告知,以便迅速处理。如有错漏,不吝赐教。
如果本文对您有用,点赞或评论哦;如果您喜欢我的文章,请点击关注我哦~
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步