SQL - find_in_set()函數(shù)的使用

一、MySQL手冊中find_in_set函數(shù)的語法:

FIND_IN_SET(str,strlist)

str 要查詢的字符串

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

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

例子:

mysql> SELECT FIND_IN_SET('b', 'a,b,c,d');?

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

二、常見用法

1、find_in_set() 和 in 的區(qū)別:

FIND_IN_SET(str,strlist)?

strlist是常量,則可以直接用IN

例子

select * from user where user_id in (1,2,3); ----可以用IN

select * from user where user_id in (list); ---不可用,返回為空。list為一個變量

select * from user where user_id ?find_in_set('1',list);-- 可用,正確返回

2、find_in_set() 和 like的區(qū)別:

like是廣泛的模糊匹配,字符串中沒有分隔符,F(xiàn)ind_IN_SET 是精確匹配,字段值以英文”,”分隔

例子:

SELECT * FROM users WHERE limits LIKE '%2%';

like查詢結(jié)果

SELECT * FROM users WHERE FIND_IN_SET(2,limits);


find_in_set 查詢結(jié)果
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容