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