代码之家  ›  专栏  ›  技术社区  ›  Berry Blue

使用GROUP_CONNCT和DISTINCT的MySql查询

  •  2
  • Berry Blue  · 技术社区  · 12 年前

    这是我正在做的一个示例查询。它产生 1,A,1,A,3,B,2,B,4,C,4,C .

    SELECT GROUP_CONCAT(CONCAT(ID, ','), Value ORDER BY Value) FROM TableName
    

    这是一个 SQL Fiddle Demo .

    我想打电话 DISTINCT 在柱子上 Value 以便输出 1,A,2,B,4,C 相反

    这可能吗?我尝试的每一件事都会出错。

    1 回复  |  直到 12 年前
        1
  •  1
  •   Mahmoud Gamal    12 年前

    获取 不同的 结合体 Id, Value ,您需要 GROUP BY value 并选择 MIN(ID) 在子查询中,然后选择 GROUP_CONCAT 以与您相同的方式在外部查询中执行。

    类似这样的内容:

    SELECT GROUP_CONCAT(CONCAT(ID, ','), Value ORDER BY Value)
    FROM
    (
      SELECT value, MIN(ID) AS ID
      FROM tablename
      GROUP BY value
    ) AS t;
    

    Updated SQL Fiddle Demo

    这将为您提供:

    |      RESULT |
    ---------------
    | 1,A,2,B,4,C |