在mysql中,有時我們在做資料庫查詢時,需要得到某字段中包含某個值的記錄,但是它也不是用like能解決的,使用like可能查到我們不想要的記錄,它比like更精準,這時候mysql的find_in_set函式就派上用場了,下面來具體了解一下。
find_in_set(str,strlist)函式
str 要查詢的字串
strlist 欄位名 引數以」,」分隔 如 (1,2,6,8)
查詢字段(strlist)中包含(str)的結果,返回結果為null或記錄
下面舉例說明
test表中有如下欄位及值
下面我想查詢area中包含」1″這個引數的記錄
select * from test where find_in_set('1',area)
返回值下面查詢btype欄位中包含」15″這個引數的值
select * from test where find_in_set('15',btype)
返回值下面查詢btype欄位中包含」5″這個引數的值
select * from test where find_in_set('5',btype)
返回值為null,因為btype中沒有」5」這個值,它不同於 like 模糊查詢,它是以「,」來分隔值
接下面查詢btype欄位中包含」20″這個引數的值
select * from test where find_in_set('20',btype)
當然它的返回值為null,因為欄位中沒有這個值
find_in_set和like的區別
like是廣泛的模糊匹配,字串中沒有分隔符,find_in_set 是精確匹配,字段值以英文」,」分隔,find_in_set查詢的結果要小於like查詢的結果。
參考**:
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...