MySQL中find in set 函式的使用

2021-10-03 21:08:42 字數 898 閱讀 6254

find_in_set(str,strlist)

str 要查詢的字串

strlist 欄位名 引數以」,」分隔 如 (1,2,6,8)

查詢字段(strlist)中包含(str)的結果,返回結果為null或記錄

假如字串str在由n個子鏈組成的字串列表strlist 中,則返回值的範圍在 1 到 n 之間。 乙個字串列表就是乙個由一些被 『,』 符號分開的子鏈組成的字串。如果第乙個引數是乙個常數字串,而第二個是type set列,則find_in_set() 函式被優化,使用位元計算。 如果str不在strlist 或strlist 為空字串,則返回值為 0 。如任意乙個引數為null,則返回值為 null。這個函式在第乙個引數包含乙個逗號(『,』)時將無法正常執行。

例子:mysql> select find_in_set('b', 'a,b,c,d'); 

-> 2 因為b 在strlist集合中放在2的位置 從1開始

select find_in_set('1', '1'); 返回 就是1 這時候的strlist集合有點特殊 只有乙個字串 其實就是要求前乙個字串 一定要在後乙個字串集合中才返回大於0的數 

select find_in_set('2', '1,2'); 返回2 

select find_in_set('6', '1'); 返回0

注意: 

select * from treenodes where find_in_set(id, '1,2,3,4,5'); 

使用find_in_set函式一次返回多條記錄 

id 是乙個表的字段,然後每條記錄分別是id等於1,2,3,4,5的時候 

有點類似in (集合) 

select * from treenodes where id in (1,2,3,4,5);

mysql 中 FIND IN SET 的使用

表a和表b相互關聯,是一對多的關係,a中乙個記錄對應多個b中的記錄。要求在不建立中間表的情況下,通過a中的乙個字段可以找到多個b中的記錄。a id fid family 1 1,2,3 englishb id name 1 a 2 b 3 c表a中有一條記錄,記錄了english家族的三個字母,通過...

mysql中FIND IN SET的使用

在mysql中,有時我們在做資料庫查詢時,需要得到某字段中包含某個值的記錄,但是它也不是用like能解決的,使用like可能查到我們不想要的記錄,它比like更精準,這時候mysql的find in set函式就派上用場了,下面是find in set的使用方法。find in set str,st...

mysql中的find in set 函式

mysql中提供了乙個find in set 函式,用於檢索乙個字串在乙個字串集合 以逗號分隔的字串 中的位置,如果檢索到了,則返回該匹配的字串所在的位置 如果檢索不到,則返回0。find in set str,strlist 簡單例子 select find in set yanggb1 yang...