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