msyql的FIND_IN_SET(str,strlist)用于判断strlist是否包含str
如果str不在strlist 或strlist 为空字符串,则返回值为 0 。如任意一个参数为NULL,则返回值为 NULL。如果strlist包含str,str在strlist中的位置。
具体用法如下:
1.判断‘6,7,8’是否包含9,包含则显示666666,不包含则不显示
select '666666' b from dual where find_in_set('9','6,7,8');
2.关联查询使用
select a.id,a.code from (
select '1' id, '01' code from dual
union all
select '2' id, '02' code from dual
union all
select '3' id, '03' code from dual) a
left join (
select '10' id, '01,02' codes from dual
union all
select '11' id, '02,03' codes from dual
union all
select '12' id, '01,03' codes from dual
union all
select '13' id, '003' codes from dual) b on find_in_set(a.code,b.codes) where b.id = '10'