How to use GROUP_CONCAT in a CONCAT in MySQL

前端 未结 7 1948
旧巷少年郎
旧巷少年郎 2020-11-22 11:38

If I have a table with the following data in MySQL:

id       Name       Value
1          A          4
1          A          5
1          B          8
2               


        
7条回答
  •  轻奢々
    轻奢々 (楼主)
    2020-11-22 11:54

    Try:

    CREATE TABLE test (
      ID INTEGER,
      NAME VARCHAR (50),
      VALUE INTEGER
    );
    
    INSERT INTO test VALUES (1, 'A', 4);
    INSERT INTO test VALUES (1, 'A', 5);
    INSERT INTO test VALUES (1, 'B', 8);
    INSERT INTO test VALUES (2, 'C', 9);
    
    SELECT ID, GROUP_CONCAT(NAME ORDER BY NAME ASC SEPARATOR ',')
    FROM (
      SELECT ID, CONCAT(NAME, ':', GROUP_CONCAT(VALUE ORDER BY VALUE ASC SEPARATOR ',')) AS NAME
      FROM test
      GROUP BY ID, NAME
    ) AS A
    GROUP BY ID;
    

    SQL Fiddle: http://sqlfiddle.com/#!2/b5abe/9/0

提交回复
热议问题