FIND_IN_SET 一般都是单个查一个逗号分隔字段的,
比如
FIND_IN_SET('a','a,b,c')
如果要查出a,b这种值就不行了
用OR的方法解决,下边这个mybatis没试验过,等有空再试试,先记录下解决思路
1=1 AND ( <foreach collection="item.ids.split(',')" item="aaa" index="index" open="" close="" separator="OR"> FIND_IN_SET(#{aaa},'a,b,c') </foreach>
比如有一个tag表,然后另一张表中有一个 多个tagId逗号分隔的字段,想查出多个tag的名字,用逗号分隔
SELECT a.tagIds,
(SELECT GROUP_CONCAT(b.tag_name) FROM tag b WHERE FIND_IN_SET(b.tag_id,a.tag_ids)) tagNames
FROM article a