一喷楣、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%';
SELECT * FROM users WHERE FIND_IN_SET(2,limits);