MySQL中的CONCAT、CONCAT_WS、GROUP_CONCAT函数,实现多行和多列的内容放在一个单元格内

来源:互联网 发布:网络信息安全的重要性 编辑:程序博客网 时间:2024/05/18 03:59

CONCAT()函数

concat查询列合并,列之间无分隔符号

通用模板

查询语句:
select concat(columnname,columnname,...) as byname from tablename;
查询结果(多列合并的结果不会出现分隔符):
bynamecolumnvaluecolumnvalue...

实例

实验表名:people
实验表数据如下:

查询语句:
SELECT CONCAT(id,name,sex,high) as con FROM people;
查询结果:


concat查询列合并,列之间设置分隔符号

通用模板:

查询语句(如果想列之间都出现分隔符,需要在查询语句中添加n-1个分割符号。此时建议使用concat_ws()方法):
select concat(columnname,'separator',columnname,'separator',...) as byname from tablename;

实例

查询语句(采用1.1.2中使用的数据):
SELECT CONCAT(id,',',NAME,sex,high) AS con FROM people;
查询结果:



CONCAT_WS()函数

 CONCAT_WS()函数是CONCAT()的特殊形式,再次单独列出。

 通用模板

查询语句:

select CONCAT_WS('separator',columnname,columnname,...) as byname FROM tablename;
查询结果:
bynamecolumnvalueseparatorcolumnvalueseparator...

实例

查询语句(数据采用1.1.2):
SELECT CONCAT_WS(',',id,name,sex,high) as con_ws FROM people;
查询结果:



GROUP_CONCAT()函数

根据分组,对分组的数据通过分组放在一行中。实现多行分组合并

通用模板

查询语句:
select groupcolumnname,GROUP_CONCAT(columnname GROUP BY columnname SEPARATOR 'serartor') AS byname FROM tablename GROUP BY groupcolumnname;
查询结果:
groupcolumnname                  bynamegroupcolumnvalue                 columnvalueseparatorcolumnvalueseparator...

实例

查询语句(表数据参考1.1.2):
SELECT sex,GROUP_CONCAT(name ORDER BY name SEPARATOR ',') as names from peopleGROUP BY sex;
查询结果:



阅读全文
0 0