mysql中FIND IN SET的使用方法

2022-08-29 16:18:27 字數 1022 閱讀 3157

在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...