在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)