从所有行获取值,并将其显示为一行,并用MySQL逗号分隔

为此,请使用GROUP_CONCAT()。不要使用GROUP BY子句,因为GROUP_CONTACT()是一个更好,更快捷的解决方案。

让我们首先创建一个表-

mysql> create table DemoTable1371
   -> (
   -> Id int,
   -> CountryName varchar(40)
   -> );

使用插入命令在表中插入一些记录-

mysql> insert into DemoTable1371 values(100,'US');
mysql> insert into DemoTable1371 values(100,'UK');
mysql> insert into DemoTable1371 values(101,'AUS');
mysql> insert into DemoTable1371 values(101,'Angola');

使用select语句显示表中的所有记录-

mysql> select * from DemoTable1371;

这将产生以下输出-

+------+-------------+
| Id   | CountryName |
+------+-------------+
|  100 | US          |
|  100 | UK          |
|  101 | AUS         |
|  101 | Angola      |
+------+-------------+
4 rows in set (0.00 sec)

这是从所有行获取值并将其显示为单行并用逗号分隔的查询-

mysql> select group_concat(CountryName separator ',') from DemoTable1371;

这将产生以下输出-

+-----------------------------------------+
| group_concat(CountryName separator ',') |
+-----------------------------------------+
| US,UK,AUS,Angola                        |
+-----------------------------------------+
1 row in set (0.00 sec)