1.用法
FIND_PART_IN_SET(str1 ,str2)>0即可,例如FIND_PART_IN_SET('1,3' , '1,3,4,5')>0
2.# FIND_IN_SET()和IN、LIKE的区别
FIND_IN_SET()和IN、LIKE的区别:
1.IN和FIND_IN_SET的区别:
| 12 | SELECT dept_id, parent_id, ancestors, order_num, leader, phone ``FROM sys_dept``WHERE '101' IN (``'101,102'``) ; |
|---|
in后面只能跟常量, 如果跟字符串的话,就会和字符串的值进行完全匹配,所以上面的sql查询不到记录。
但是find_in_set()函数可以使用常量或字段。
2.like和FIND_IN_SET的区别:
| 12 | SELECT dept_id, parent_id, ancestors, order_num, leader, phone ``FROM sys_dept``WHERE ancestors ``LIKE '%10%' ; |
|---|
| 12 | SELECT dept_id, parent_id, ancestors, order_num, leader, phone ``FROM sys_dept``WHERE FIND_IN_SET(10, ancestors) ; |
|---|
like是广泛的模糊匹配,字符串中没有分隔符,Find_IN_SET 是精确匹配,字段值会以英文”,”分隔,
Find_IN_SET查询的结果要小于like查询的结果。