mysql中FIND_IN_SET的使用方法


mysql中,有時我們在做數據庫查詢時,需要得到某字段中包含某個值的記錄,但是它也不是用like能解決的,使用like可能查到我們不想要的記錄,它比like更精准,這時候mysql的FIND_IN_SET函數就派上用場了,下面來具體了解一下。

FIND_IN_SET(str,strlist)函數

str 要查詢的字符串

strlist 字段名 參數以”,”分隔 如 (1,2,6,8)

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

下面舉例說明

test表中有如下字段及值

mysql中FIND_IN_SET的使用方法 - 第1張  | 碼農小兵

下面我想查詢area中包含”1″這個參數的記錄

SELECT * from test where FIND_IN_SET('1',area)

返回值

mysql中FIND_IN_SET的使用方法 - 第2張  | 碼農小兵

下面查詢btype字段中包含”15″這個參數的值

SELECT * from test where FIND_IN_SET('15',btype)

返回值

mysql中FIND_IN_SET的使用方法 - 第3張  | 碼農小兵

下面查詢btype字段中包含”5″這個參數的值

SELECT * from test where FIND_IN_SET('5',btype)

返回值為null,因為btype中沒有”5”這個值,它不同於 like 模糊查詢,它是以“,”來分隔值

mysql中FIND_IN_SET的使用方法 - 第4張  | 碼農小兵

接下面查詢btype字段中包含”20″這個參數的值

SELECT * from test where FIND_IN_SET('20',btype)

當然它的返回值為null,因為字段中沒有這個值

mysql中FIND_IN_SET的使用方法 - 第5張  | 碼農小兵

FIND_IN_SET和like的區別

like是廣泛的模糊匹配,字符串中沒有分隔符,Find_IN_SET 是精確匹配,字段值以英文”,”分隔,Find_IN_SET查詢的結果要小於like查詢的結果。

更多參考:http://www.devdo.net/mysql-find_in_set.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM