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 |
+-----------------------------------+
但我不知道你为什么要这样做。在应用程序代码中似乎更容易做到。
我们有一个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 |
+-----------------------------------+
但我不知道你为什么要这样做。在应用程序代码中似乎更容易做到。