Group Concat 两列,但在 GROUPS 中——涉及三个分隔符

Group Concat TWO columns but in GROUPS -- THREE separators involved

我们有一个mysqltable

id name   groupid
1  user1  0
2  user2  0
3  user3  1
4  user4  1

我们想要 GROUP CONCAT 以便我们得到输出

1,user1;2,user2---3,user3;4,user4

这符合您的描述:

create table NoOneEverNamesTheTableInSqlQuestions (
  id int, 
  name text, 
  groupid int
);

insert into NoOneEverNamesTheTableInSqlQuestions values
  (1, 'user1', 0),
  (2, 'user2', 0),
  (3, 'user3', 1),
  (4, 'user4', 1);

select group_concat(g separator '---') as output 
from (
  select group_concat(concat_ws(',',id,name) separator ';') as g 
  from NoOneEverNamesTheTableInSqlQuestions 
  group by groupid
) as g;

输出,使用 MySQL 8.0.0-dmr:

测试
+-----------------------------------+
| output                            |
+-----------------------------------+
| 1,user1;2,user2---3,user3;4,user4 |
+-----------------------------------+

但我不知道你为什么要这样做。在应用程序代码中似乎更容易做到。