【问题标题】:How to compress multiple rows with concat如何使用 concat 压缩多行
【发布时间】:2012-10-02 18:48:22
【问题描述】:

假设我在数据库中有一个 COG 表,并且 COG 表中的每个 COG 都可以链接到第二个表中的一个或多个生物体。如果我只是加入这些,我最终会为每个生物体多次复制 COG。

我想生成一个查询,改为使用 concat_ws()(即 CSV 格式)将链接到给定 COG 的每个生物体放入单个字符串中。

我尝试使用: GROUP BY concat_ws(',', 生物体.name)

但这没有用。

有什么建议吗?

【问题讨论】:

  • 有什么不好的?您可以发布完整的查询吗?一些示例数据也会有所帮助。

标签: mysql sql string concat workbench


【解决方案1】:

您正在寻找GROUP_CONCAT 函数:

SELECT c.ID, GROUP_CONCAT(o.name)
    FROM COG c
        INNER JOIN organism o
            ON c.ID = o.COG_ID
    GROUP BY c.ID;

【讨论】:

  • 如果他们需要删除重复值,您可能需要DISTINCT
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-25
  • 1970-01-01
  • 2015-09-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多