MySQL group_concat() 函数用法

在使用 group by对数据进行分组后,如果需要对 select 的数据项进行字符串拼接,这时就需要用到group_concat()函数。

1、基本用法

group_concat()完整语法如下:

group_concat([DISTINCT] 要连接的字段 [Order BY ASC/DESC 排序字段] [Separator '分隔符'])

通过 distinct可以去掉重复值,order by进行排序,separator指定分隔符,默认为逗号。

user 表

address 表

user与address为一对多关系,现在以user_id进行group by分组,对数据项city进行字符串拼接,写法如下:

select u.id, u.name, group_concat(ad.city) as city

from user u inner join address ad on u.id = ad.user_id

group by u.id

查询结果如下:

2、distinct 去重

从上文可以看到 id=2的数据项有两个广州市

select u.id, u.name, group_concat(distinct ad.city) as city

from user u inner join address ad on u.id = ad.user_id

group by u.id

结果如下:

3、 order by 排序

city按照以倒序的顺序排列

select u.id, u.name, group_concat(distinct ad.city order by ad.city desc) as city

from user u inner join address ad on u.id = ad.user_id

group by u.id

结果如下:

4、separator 指定分隔符

默认分隔符为逗号,这里指定短横线 --

select u.id, u.name, group_concat(distinct ad.city order by ad.city desc separator '--') as city

from user u inner join address ad on u.id = ad.user_id

group by u.id

结果如下:

5、多字段拼接

以上的例子是基于单数据列演示的,如果需要多个数据列拼成一个字段返回的话,写法也很简单,如下所示

group_concat(数据列1,'分隔符',数据列2,Separator '分隔符')

下面是简单的例子

-- 拼接city与address

select u.id, u.name, group_concat(ad.city,'--',ad.address SEPARATOR ';') as cityAddress

from user u inner join address ad on u.id = ad.user_id

group by u.id

结果如下:

至此,用法介绍完毕。

mysql group_concat去重_MySQL group_concat() 函数用法相关推荐

  1. mysql group_concat去重_mysql GROUP_CONCAT 函数 将相同的键的多个单元格合并到一个单元格...

    mysql GROUP_CONCAT 函数 将相同的键的多个单元格合并到一个单元格 MemberID MemberName FruitName -------------- ------------- ...

  2. mysql 字符串截取_MySQL|SUBSTR() 函数用法

    MySQL SUBSTR() 函数 :截取字符串 SUBSTR( )与SUBSTRING( )意思相等 函数语法 SUBSTR (str, pos) 截取从pos位置开始到最后的所有str字符串 SU ...

  3. mysql substr无效_mysql substr()函数用法

    一.用法: substr(string string,num start,num length); string:为字符串: start:为起始位置: length:为长度. 二.区别: mysql中 ...

  4. Mysql中rank类的函数用法

    Mysql中rank类的函数用法 rank() over 作用:查出指定条件后的进行排名,条件相同排名相同,排名间断不连续. 说明:例如学生排名,使用这个函数,成绩相同的两名是并列,下一位同学空出所占 ...

  5. split mysql的用法_mysql split函数用法实例

    首先,大家要知道的是,在mysql中并没有split函数,需要自己写. 比如下面几个mysql split函数的例子. 例1,获得按指定字符分割的字符串的个数: 复制代码 代码示例: DELIMITE ...

  6. mysql contact 函数_mysql concat函数用法举例

    学习下mysql数据库中的字符串函数 concat函数的使用方法,比如select concat('11','22','33'). MySQL中concat函数 使用方法: CONCAT(str1,s ...

  7. mysql 自定义过程_MySQL自定义函数

    查询所有树状数据的后代节点 代码中a.centerid 为本身的唯一标示,a.parentcentid为父id标示 比如传入1 ,查出2,3,4,5,6 1 2     3 4     5      ...

  8. mysql 昨天日期_MySQL 日期函数 今天明天昨天......

    MySQL 获得当前日期时间 函数 获得当前日期+时间(date + time)函数:now() mysql> select now(); +---------------------+ | n ...

  9. mysql相除_mysql 常用函数

    流程控制函数 CASE 函数 [写法-] CASE value WHEN [compare_value] THEN result [WHEN [compare_value] THEN result . ...

最新文章

  1. 赠票 | 重磅揭晓Flink Forward Asia 2019完整议程!
  2. 函数 —— strtok() 例如:Fred male 25,John male 62,Anna female 16两层循环
  3. Cobbler全自动安装CentOS(整理)
  4. phpMyAdmin常用设置
  5. 又一款主流勒索软件 Paradise 的源代码遭泄露
  6. 【C++leetcode】寻找给定字符串的最大回文子串
  7. 读书笔记:程序员的工具箱之“代码片段”
  8. 事业单位资产管理系统广西某单位案例:实现资产动态全过程管理
  9. GC bias GC偏好
  10. 模电——电源与地之间串联电容的作用
  11. 计算机视觉(ComputerVision, CV)相关领域的网站链接
  12. 【计算机视觉】图像配准(Image Registration)
  13. golang数据结构初探之字典map
  14. 【解决方案 二十三】带单位的数值转大写人民币金额
  15. Epub 阅读器 - iOS
  16. 面经汇总--校招--北京顺丰同城
  17. 【步态识别】MvGGAN 基于多视角步态生成对抗网络 算法学习《Multi-View Gait Image Generation for Cross-View Gait Recognition》
  18. HDU 4546 比赛难度
  19. 标准24+1型DVI转VGA头
  20. Tasklist使用详解

热门文章

  1. 利用BenchmarkDotNet 测试 .Net Core API 同步和异步方法性能
  2. 拥抱.NET Core系列:MemoryCache 缓存域
  3. 基于Office 365的随需应变业务应用平台
  4. C#将WebBowser控件替换为Chrome内核
  5. 如何将 Microsoft Bot Framework 链接至微信公共号
  6. MySQL-06:pyMySQL增删改查基本命令笔记
  7. 【ArcGIS遇上Python】ArcGIS Python批处理入门到精通实用教程目录
  8. Android之用UncaughtExceptionHandler实现保存崩溃日志到sdcard目录下的文件夹
  9. LeetCode之Keyboard Row
  10. windows之DNS7种资源记录和flushdns命令清除DNS缓存以及nslookup解析域名和ipconfig/all命令查看网络配置使用总结