在MySQL中使用GROUP_CONCAT()从多行连接数据?

让我们首先创建一个表-

mysql> create table DemoTable (CountryName varchar(100));

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

mysql> insert into DemoTable values('US');
mysql> insert into DemoTable values('AUS');
mysql> insert into DemoTable values('UK');

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

mysql> select *from DemoTable;

这将产生以下输出-

+-------------+
| CountryName |
+-------------+
| US          |
| AUS         |
| UK          |
+-------------+
3 rows in set (0.00 sec)

这是连接多个行的查询。我们正在创建一个程序-

mysql> DELIMITER //
mysql> CREATE PROCEDURE searchDemo(in stringValue varchar(255), out output text)
   BEGIN
      select group_concat(distinct CountryName order by CountryName) into output from DemoTable where
      CountryName like stringValue;
   END
   //
mysql> DELIMITER ;

借助call命令调用存储过程-

mysql> call searchDemo('U%',@output);

让我们检查变量@output的值-

mysql> select @output;

这将产生以下输出-

+---------+
| @output |
+---------+
| UK,US   |
+---------+
1 row in set (0.00 sec)