MySQL查询在一个记录中列出一组中的所有项目?
您可以使用GROUP_CONCAT()函数在一个记录中列出组中的所有项目。让我们首先创建一个表-
mysql> create table DemoTable ( ProductId int, ProductName varchar(40), ProductCategory varchar(40) );
使用插入命令在表中插入一些记录-
mysql> insert into DemoTable values(100,'Product-1','1Product'); mysql> insert into DemoTable values(101,'Product-2','2Product'); mysql> insert into DemoTable values(100,'Product-1','3Product');
以下是使用select语句显示表中所有记录的查询-
mysql> select *from DemoTable;
这将产生以下输出-
+-----------+-------------+-----------------+ | ProductId | ProductName | ProductCategory | +-----------+-------------+-----------------+ | 100 | Product-1 | 1Product | | 101 | Product-2 | 2Product | | 100 | Product-1 | 3Product | +-----------+-------------+-----------------+ 3 rows in set (0.00 sec)
以下是查询以在单个记录中列出组中的所有项目的查询-
mysql> select ProductId,group_concat(ProductCategory) AS `GROUP` FROM DemoTable group by ProductId;
这将产生以下输出-
+-----------+-------------------+ | ProductId | GROUP | +-----------+-------------------+ | 100 | 1Product,3Product | | 101 | 2Product | +-----------+-------------------+ 2 rows in set (0.00 sec)