<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
範例:
select FIND_IN_SET('1', '1,2,3'); // 結果:1 select FIND_IN_SET('3', '1,2,3'); // 結果:3 select FIND_IN_SET('4', '1,2,3'); // 結果:0 // 後一個包含前一個返回大於0的元素所在位置,不包含前一個則返回0
相信大家看完以上範例就知道這個函數的大概作用了,以下是MySQL手冊中官方說明
FIND_IN_SET(str,strlist),該函數的作用是查詢欄位(strlist)中是否包含(str)的結果,
返回結果為null或記錄 。str 要查詢的字串
strlist 需查詢的欄位,引數以”,”分隔,例如如 '1,2,3'
假如字串str在由N個子鏈組成的字串列表strlist 中,則返回值的範圍在 1 到 N 之間。 一個字串列表
就是一個由一些被’,‘ 符號分開的子鏈組成的字串。如果第一個引數是一個常數位符串,而第二個是type SET列,
則FIND_IN_SET() 函數被優化,使用位元計算。
如果str不在strlist 或strlist 為空字串,則返回值為 0 。
如任意一個引數為NULL,則返回值為 NULL。
這個函數在第一個引數包含一個逗號( , )時將無法正常執行。
概括一下就是(前一個字串是A,後一個字串是B):
如果B字串包含A字串:則返回大於0的值,這個值就是A字串在B字串的所在位置;
如果B字串不包含A字串:則返回0;
如果B字串或者A字串有任意一個是null,則返回null;
如果A字串包含逗號,則無法執行。
就拿若依的許可權認證的其中一條sql來給大家舉例吧:
SELECT dept_id, parent_id, ancestors, order_num, leader, phone FROM sys_dept WHERE dept_id = 101 or FIND_IN_SET(101, ancestors) ;
查詢結果:
sql想要實現的功能就是查詢部門id是101的,或者其他部門的ancestors欄位(祖先)中有101的所有部門。使用FIND_IN_SET()函數完全可以實現。
那有的朋友就會說了,為什麼不用in或者like呢,區別如下:
SELECT dept_id, parent_id, ancestors, order_num, leader, phone FROM sys_dept WHERE '101' IN ('101,102') ;
in後面只能跟常數, 如果跟字串的話,就會和字串的值進行完全匹配,所以上面的sql查詢不到記錄。
但是find_in_set()函數可以使用常數或欄位。
SELECT dept_id, parent_id, ancestors, order_num, leader, phone FROM sys_dept WHERE ancestors LIKE '%10%' ;
SELECT dept_id, parent_id, ancestors, order_num, leader, phone FROM sys_dept WHERE FIND_IN_SET(10, ancestors) ;
like是廣泛的模糊匹配,字串中沒有分隔符,Find_IN_SET 是精確匹配,欄位值會以英文”,”分隔,
Find_IN_SET查詢的結果要小於like查詢的結果。
到此這篇關於Mysql中find_in_set()函數用法詳解以及使用場景的文章就介紹到這了,更多相關Mysql find_in_set()函數用法內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45