MySQL 查询如何基于对应列中值为 1 的数据进行分组连接并将其放入单行?
为此,请使用 GROUP_CONCAT() 函数。对于仅包含 1 的值,可以使用 MySQL 的 WHERE 子句。首先,让我们创建一个表:
mysql> create table DemoTable ( PlayerName varchar(40), PlayerStatus tinyint(1) ); Query OK, 0 rows affected (0.60 sec)
使用 INSERT 命令在表中插入一些记录:
mysql> insert into DemoTable values('Chris',1); Query OK, 1 row affected (0.13 sec) mysql> insert into DemoTable values('David',0); Query OK, 1 row affected (0.12 sec) mysql> insert into DemoTable values('Sam',1); Query OK, 1 row affected (0.16 sec) mysql> insert into DemoTable values('Carol',1); Query OK, 1 row affected (0.12 sec) mysql> insert into DemoTable values('Bob',0); Query OK, 1 row affected (0.14 sec)
使用 SELECT 语句显示表中的所有记录:
mysql> select *from DemoTable;
这将产生以下输出:
+------------+--------------+ | PlayerName | PlayerStatus | +------------+--------------+ | Chris | 1 | | David | 0 | | Sam | 1 | | Carol | 1 | | Bob | 0 | +------------+--------------+ 5 rows in set (0.00 sec)
以下是基于对应列中值为 1 的数据进行分组连接并将其放入单行的查询:
mysql> select group_concat(PlayerName) from DemoTable where PlayerStatus=1;
这将产生以下输出:
+--------------------------+ | group_concat(PlayerName) | +--------------------------+ | Chris,Sam,Carol | +--------------------------+ 1 row in set (0.00 sec)
广告