使用MySQL根据另一列的布尔值连接行
要根据另一列中的布尔值连接行,请使用GROUP_CONCAT()。让我们先创建一个表。在这里,我们将其中一列“isValidUser”设置为BOOLEAN:
mysql> create table DemoTable ( Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, UserMessage varchar(100), isValidUser boolean ); Query OK, 0 rows affected (0.63 sec)
使用insert命令在表中插入一些记录:
mysql> insert into DemoTable(UserMessage,isValidUser) values('Hi',true); Query OK, 1 row affected (0.26 sec) mysql> insert into DemoTable(UserMessage,isValidUser) values('Hello',false); Query OK, 1 row affected (0.09 sec) mysql> insert into DemoTable(UserMessage,isValidUser) values('Good',true); Query OK, 1 row affected (0.11 sec) mysql> insert into DemoTable(UserMessage,isValidUser) values('Awesome !!!!!',true); Query OK, 1 row affected (0.09 sec)
使用select语句显示表中的所有记录:
mysql> select *from DemoTable;
这将产生以下输出:
+----+---------------+-------------+ | Id | UserMessage | isValidUser | +----+---------------+-------------+ | 1 | Hi | 1 | | 2 | Hello | 0 | | 3 | Good | 1 | | 4 | Awesome !!!!! | 1 | +----+---------------+-------------+ 4 rows in set (0.03 sec)
以下是根据另一列中的布尔值连接行的查询。在这里,我们正在连接布尔值1的对应记录,布尔值0的记录也是如此:
mysql> select isValidUser,group_concat(UserMessage) from DemoTable group by isValidUser;
这将产生以下输出:
+-------------+---------------------------+ | isValidUser | group_concat(UserMessage) | +-------------+---------------------------+ | 0 | Hello | | 1 | Hi,Good,Awesome !!!!! | +-------------+---------------------------+ 2 rows in set (0.07 sec)
广告