mysql分组拼接函数
MySQL分组拼接函数是一种常用的SQL运算函数,它可以将从一个表中获取的多行记录,拼接成一条字符串,这种字符串可以帮助数据库管理人员在实际应用中节省大量的时间。
MySQL统提供两个常用的分组拼接函数:GROUP_CONCAT CONCAT_WS。GROUP_CONCAT函数用来将多行记录拼接成一条字符串,CONCAT_WS函数用来将多行记录拼接成一条字符串,在每一个新拼接的字符串前面都添加一个分隔符。 1、GROUP_CONCAT函数
GROUP_CONCAT函数用来将多行记录拼接成一条字符串,假如有一个数据表名为students,它的结构如下: id | name | grade 1 三 90 2 四 80 3 五 85 4 六 75
接下来,我们用GROUP_CONCAT函数来将表中所有name和grade列拼接成一个字符串,然后在每一个新拼接的字符串前面都添加一个分隔符”-”:
SELECT GROUP_CONCAT(name,’-’,grade) FROM students; 运行上面的SQL,就可以得到下面的结果: 张三-90,李四-80,王五-85,赵六-75
- 1 -
2、CONCAT_WS函数
CONCAT_WS函数用来将多行记录拼接成一条字符串,在每一个新拼接的字符串前面都添加一个分隔符,它的语法如下: CONCAT_WS(separator,str1,str2,str3....strN);
其中,separator是分隔符,str1,str2,str3....strN是要拼接的字符串,接下来,我们用CONCAT_WS函数来将表students中所有name和grade列拼接成一个字符串,然后在每一个新拼接的字符串前面都添加一个分隔符”|”:
SELECT CONCAT_WS(‘|’,name,grade) FROM students; 运行上面的SQL,就可以得到下面的结果: 张三|90,李四|80,王五|85,赵六|75
通过以上两个函数的案例,我们可以看出GROUP_CONCAT拼接多行记录时不添加分隔符,而CONCAT_WS函数拼接多行记录时需要添加分隔符。
MySQL组拼接函数是一种非常有用的运算函数,可以帮助我们快速准确地拼接出多行记录,这样可以节省大量的时间,提高工作效率。在实际使用中,不同情景可以使用GROUP_CONCAT和CONCAT_WS函数,而且它们还有很多高级用法,比如order by、distinct、separator等等,这里就不作进一步介绍了,后续文章也会接着讨论这方面的问题。
- 2 -