当前位置: 首页 > news >正文

MySQL中concat()、concat_ws()、group_concat()函数使用

在平时工作中,经常记不清或者记混他们的用法,正好有时间就记录一下~

  1. concat()函数

语法:concat(str1, str2, int1...)

例如执行sql:

SELECT CONCAT(id,USERNAME,USER_PHONE) FROM tb_user输出查询结果为:
1test15216756754
192Test17051331386
193德庄火锅1113773670133
194南通印象13773707311
195辣五味13862768650

那如果拼接的有null值:

SELECT CONCAT(id,USERNAME,null) FROM tb_user输出查询结果为:
null
null
null
null

结果则为null。concat()可以拼接string/int类型。但是拼接null会得到null值。

  1. concat_ws()函数

和concat()不同的是concat_ws() 可以指定分隔符,concat_ws就是concat with separator。

注意separator不能为null,否则结果将会为null。

语法:concat_ws(separator, str1, str2, ...)

concat_ws()指定分隔符,用法如下:

SELECT CONCAT_WS('-',id,USERNAME,0,USER_EMAIL) FROM tb_user输出查询结果为:
1-test-0-qliuqian@163.com
192-Test-0-
193-德庄火锅-0-xx@xx.com
194-南通印象-0-xx@xx.com

concat()拼接null值会得到null值,concat_ws()拼接null值会忽略null值。

  1. group_concat()函数

语法:group_concat( [distinct] 要连接的字段 [order by 排序字段 asc/desc ] [separator '分隔符'] )

注意:1.[]非必选项

2.group_concat只有与group by语句同时使用才能产生效果,否则所有数据会被合并成一行

3.distinct用于对拼接的结果去重;separator是一个字符串值,缺省为一个逗号。

接下来就展示group_concat()的简单用法。

我以我们公司的某个数据库的项目表为主,作为演示。

案例1

根据区域分组统计区域内的项目名称,且进行降序排序

SELECT
project_region_area,
GROUP_CONCAT(distinct `name` order by `name` desc separator '-')
FROM tah_project
GROUP BY project_region_area输出查询结果为:
冀中区    张家口·蔚县·中节能-保定·涞水·中节能-任丘·议论堡·深能源
冀北区    天津·北辰·浙能-唐山·曹妃甸·中交-唐山·乐亭·浙能-唐山·丰润·浙能
冀南区    阳泉·郊区·锦江-邯郸·永年·中电-邢台·威县·深能源-衡水·冀州·泰达
冀西区    石家庄·行唐·中节能-石家庄·栾城·中节能-石家庄·无极·锦江
案例2

在案例1的基础上,项目名称加上项目ID展示(函数嵌套使用)

SELECT
project_region_area,
GROUP_CONCAT(CONCAT_WS('-', id, name) order by id desc)
FROM tah_project
GROUP BY project_region_area输出查询结果为:
冀中区    189-张家口·蔚县·中节能,134-任丘·议论堡·深能源,133-保定·涞水·中节能
冀北区    176-唐山·曹妃甸·中交,123-天津·北辰·浙能,122-唐山·乐亭·浙能,115-唐山·丰润·浙能
冀南区    217-衡水·冀州·泰达,180-邯郸·永年·中电,135-邢台·威县·深能源,121-阳泉·郊区·锦江
冀西区    203-石家庄·行唐·中节能,182-石家庄·栾城·中节能,124-石家庄·无极·锦江

以上就是group_concat()的简单使用啦。

根据自己需要改动哦~

http://www.lryc.cn/news/34714.html

相关文章:

  • 【JavaEE初阶】第四节.文件操作 和 IO (上篇)
  • 开源免费堡垒机Teleport堡垒机的安装
  • 图形报表ECharts
  • 便捷式储能电源核心技术--单相逆变器设计
  • Gamma矫正
  • 速懂cookie,session,token
  • javaEE初阶 — HTML 中的常见标签
  • MySQL慢查询
  • tensorflow【import transformers 报错】
  • JMU软件20 计算机网络复习
  • Java基础之《dubbo(1)—dubbo基础入门》
  • HTML注入的一种攻击思路(超链接替换为点击验证,现在常见)
  • Redis-6集群
  • Spring Cloud学习笔记:基础知识
  • 农产品销售系统/商城,可运行
  • 【Java开发】JUC进阶 05:函数式接口、ForkJoin
  • Nginx支持quic协议
  • 笔记 - Java 内存结构与模型
  • C#基础教程12 数组
  • Android中级——屏幕和绘图
  • Linux - 第6节 - 动态库和静态库
  • 【Java学习笔记】12.Character 类及String 类
  • 【C++修炼之路】26.C++11(语法糖)
  • KD610精密油介损体积电阻率测试仪
  • 快速了解原码、反码、补码和位运算
  • 算法的复杂度介绍
  • 教你如何搭建店铺—收支管理系统,demo可分享
  • java性能分析-堆内存最佳实践-堆分析
  • 3月8号作业
  • Flink相关介绍