如何將WHERE
或HAVING
子句與GROUP_CONCAT
結合使用,以便返回的數據將包含GROUP_CONCAT
中包含ID的任意組合,其中不僅包含單個匹配,例如SELECT IN WHERE ID IN GROUP_CONCAT
SELECT p.id,
p.title,
GROUP_CONCAT(a.author_id) as 'aus'
FROM publications p INNER JOIN authors a
ON p.publication_id = a.publication_id
WHERE a.author_id = 2
GROUP BY p.id,p.title
將返回
id title aus
1 A 1,2,3
2 B 1,2
3 C 2
4 D 2
5 E 2,3
,而不是僅僅3 & 4.
我雙方的a.author_id列嘗試的HAVING
和WHERE
條款的各種組合和GROUP_CONCAT
產品。
沒有group by子句的聚合函數? –
啊對不起,我確實有,我只是簡化後發佈。已更新問題 –
GROUP_CONCAT返回一個包含逗號分隔值列表的字段,而WHERE/HAVING檢查等於特定值的字段。您可以使用FIND_IN_SET,但這意味着它被迫檢查字段中的值而沒有索引的好處。 – Kickstart