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

CONCAT()函数

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

通用模板

查询语句:

select concat(columnname,columnname,...) as byname from tablename;

查询结果(多列合并的结果不会出现分隔符):

byname
columnvaluecolumnvalue...

实例

实验表名:people

实验表数据如下:

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

查询语句:

SELECT CONCAT(id,name,sex,high) as con FROM people;

查询结果:

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

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;

查询结果:

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

 

 

CONCAT_WS()函数

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

 通用模板

查询语句:

select CONCAT_WS('separator',columnname,columnname,...) as byname FROM tablename;

查询结果:

byname
columnvalueseparatorcolumnvalueseparator...

实例

查询语句(数据采用1.1.2):

SELECT CONCAT_WS(',',id,name,sex,high) as con_ws FROM people;

查询结果:

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

 

 

GROUP_CONCAT()函数

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

通用模板

查询语句:

select groupcolumnname,GROUP_CONCAT(columnname GROUP BY columnname SEPARATOR 'serartor') AS byname FROM tablename GROUP BY groupcolumnname;

查询结果:

groupcolumnname                  byname
groupcolumnvalue                 columnvalueseparatorcolumnvalueseparator...

实例

查询语句(表数据参考1.1.2):

SELECT sex,GROUP_CONCAT(name ORDER BY name SEPARATOR ',') as names from people
GROUP BY sex;

查询结果:


 

 

你可能感兴趣的:(mysql)