mysql FIND_IN_SET 多值查询


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

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM