如何正确地将 MySQL 行折叠到单个列表中
Posted
技术标签:
【中文标题】如何正确地将 MySQL 行折叠到单个列表中【英文标题】:How to properly collapse MySQL rows into a single list 【发布时间】:2014-06-19 15:38:09 【问题描述】:我有一个表格查询
SELECT pub.id, topic.id, pub.title, etc...
FROM pub, topic, link
WHERE (matching logic)
以形式返回
pub.id | topic.id | pub.title
---------------------------------
x1 | a | y1
x1 | b | y1
x1 | ... | y1
x2 | c | y2
x2 | d | y2
x2 | ... | y2
我真正想要的是表单的响应
pub.id | topic.id | pub.title
---------------------------------
x1 | a, b ... | y1
x2 | c, d ... | y2
(我觉得匹配逻辑不重要,有需要我会贴出来的。)
我试过group_concat()
和coalesce
,但没有任何效果。有什么帮助吗?
【问题讨论】:
你是如何尝试的group_concat
你能发布那个查询吗?
【参考方案1】:
您是否记得在您的GROUP_CONCAT
测试中包含GROUP BY
?
如果不对数据进行分组,则无法连接组。
这是一个工作示例:http://sqlfiddle.com/#!2/5cd63/2
应该等于:
SELECT pub.id, GROUP_CONCAT(topic.id SEPARATOR ','), pub.title
FROM pub, topic
WHERE (matching logic)
GROUP BY pub.id, pub.title
【讨论】:
这太完美了,谢谢!当然,我完全忘记了GROUP BY
。以上是关于如何正确地将 MySQL 行折叠到单个列表中的主要内容,如果未能解决你的问题,请参考以下文章
如何正确地将数据从 *.csv 文件导入 mysql 数据库中的给定表
如何正确地将 RealmDB 结果对象映射到 SwiftUI 列表?