闲来无事,逛逛V2EX发现一道MySQL数据库题目,原题如下:

  遂打开很长一段时间都没用过SQLyog,噗呲噗呲的干起活来……

  建测试表:

CREATE TABLE test_001
(id INT,type2 VARCHAR(10),bizId VARCHAR(10),batchId INT
)INSERT INTO test_001(id,type2,bizId,batchId) VALUES(1,1,'uid1',1);
INSERT INTO test_001(id,type2,bizId,batchId) VALUES(2,1,'uid2',1);
INSERT INTO test_001(id,type2,bizId,batchId) VALUES(3,2,'fid1',1);
INSERT INTO test_001(id,type2,bizId,batchId) VALUES(4,2,'fid2',1);
INSERT INTO test_001(id,type2,bizId,batchId) VALUES(5,1,'uid3',2);
INSERT INTO test_001(id,type2,bizId,batchId) VALUES(6,2,'fid3',3);SELECT * FROM test_001;

  第一次解决,KO!

SELECT batchId,GROUP_CONCAT(uid) AS uid,GROUP_CONCAT(typeid) AS typeid
FROM(SELECT batchId,CASE WHEN type2 = '1' THEN bizIdELSE NULL END AS uid,CASE WHEN type2 = '2' THEN bizIdELSE NULL END AS typeidFROM test_001) g
GROUP BY batchId;

  看起来没什么毛病,哈哈哈!继续看看其他高手有没有什么值得学习的解决方案。

SELECT * FROM test_001;
SELECT batchId,GROUP_CONCAT(CASE WHEN type2 = 1 THEN bizId ELSE NULL END) AS "uid",GROUP_CONCAT(CASE WHEN type2 = 2 THEN bizId ELSE NULL END) AS "typeid"
FROM test_001
GROUP BY batchId;

  不采用子查询显得更加的优雅,get!结果符合要求!

  附原文链接:https://www.v2ex.com/t/535679


  顺手温习一下concat、concat_ws、group_concat函数的使用方法。

  •   concat(str1,str2,str3,...) 字符串拼接

  如果有任何一个参数为null,则返回值为null。

  •   concat_ws(separator,str1,str2,...)

  指定分隔符拼接,分隔符不能为null。

  •   group_concat( ) 分组拼接

  group_concat([distinct] col [order by xxx desc] [separator '分隔符'])

SELECT * FROM test_001-- 例子1
SELECT batchId,GROUP_CONCAT(bizId ORDER BY bizId DESC SEPARATOR '_') AS xxx
FROM test_001
GROUP BY batchId-- 例子2
SELECT batchId,GROUP_CONCAT(CONCAT_WS('-',type2,bizId) ORDER BY bizId)
FROM test_001
GROUP BY batchId


END 2019-03-26 15:27:36

转载于:https://www.cnblogs.com/hider/p/10600182.html

MySQL学习笔记:一道group by+group_concat解决的小问题相关推荐

  1. MySQL学习笔记(五)并发时经典常见的死锁原因及解决方法

    MySQL学习笔记(五)并发时经典常见的死锁原因及解决方法 参考文章: (1)MySQL学习笔记(五)并发时经典常见的死锁原因及解决方法 (2)https://www.cnblogs.com/tiny ...

  2. MySQL学习笔记04【数据库的查询操作、今日内容、表的约束】

    MySQL 文档-黑马程序员(腾讯微云):https://share.weiyun.com/RaCdIwas 1-MySQL基础.pdf.2-MySQL约束与设计.pdf.3-MySQL多表查询与事务 ...

  3. MySQL学习笔记-基础篇1

    MySQL 学习笔记–基础篇1 目录 MySQL 学习笔记--基础篇1 1. 数据库概述与MySQL安装 1.1 数据库概述 1.1.1 为什么要使用数据库 1.2 数据库与数据库管理系统 1.2.1 ...

  4. MySQL学习笔记(1)——高可用组复制

    MySQL学习笔记(1)--高可用组复制 积土成山,风雨兴焉.积水成渊,蛟龙生焉. 一.概念 组复制(MySQL Group Replication,MGR)是MySQL官方在MySQL 5.7.17 ...

  5. JavaEE 企业级分布式高级架构师(六)MySQL学习笔记(6)

    MySQL学习笔记 性能优化篇 性能优化的思路 慢查询日志 慢查询日志介绍 开启慢查询功能 演示一 演示二 分析慢查询日志 MySQL自带的mysqldumpslow 使用percona-toolki ...

  6. MySQL 学习笔记②

    若文章内容或图片失效,请留言反馈.部分素材来自网络,若不小心影响到您的利益,请联系博主删除. 视频链接:https://www.bilibili.com/video/BV1Kr4y1i7ru 资料链接 ...

  7. 献给入门小白的MySQL学习笔记+案例

    MySQL学习笔记 目录 MySQL学习笔记 1.SQL概述 1.1:数据库的好处 1.2:数据库管理系统 1.3:SQL语言概述 1.4:SQL语言的分类 2.安装与使用 2.1:MySql数据库产 ...

  8. Mysql 学习笔记(快速复习)

    Mysql 学习笔记(快速复习) 一.MySQL 基础 1.数据库连接工具 1.1.Navicat 使用教程 2.DDL 操作数据库 2.1.创建新数据库 2.2.删除数据库 2.3.使用数据库 3. ...

  9. 数据库MySQL学习笔记高级篇(周阳)

    数据库MySQL学习笔记高级篇 1. mysql的架构介绍 mysql简介 高级Mysql mysqlLinux版的安装 mysql配置文件 mysql逻辑架构介绍 mysql存储引擎 2. 索引优化 ...

  10. mysql 学习笔记--存储引擎、索引、sq优化

    全面的 mysql学习笔记–通用语法.函数.数据类型.约束.多表查询.事务 全面的 mysql学习笔记–存储引擎.索引.sql优化 全面的mysql学习笔记–视图/存储过程/触发器.锁.InnoDB引 ...

最新文章

  1. 关于魔法方法的一点总结
  2. JAVA的内存模型及结构
  3. Ubuntu上的samba共享文件安装配置
  4. GridView应用整理
  5. C#.Net 中的 new 的几个用法
  6. Vue入门指南-05 Vue实例的生命周期(快速上手vue)
  7. element-ui可编辑行增加行或删除行
  8. c bool 类型检查_第3篇:C/C++ 检查数字类型的最高有效位(MSB)
  9. SQL经典面试50题 | 附答案
  10. 计算机局域网络硬件组成,计算机基础知识:局域网网络硬件的组成
  11. wed是什么意思在计算机应用基础中,卡西欧wed什么意思
  12. 【100+ python基础入门-37】Python可变集合和不可变集合的构造方法和注意事项
  13. KNY团队与“易校”小程序介绍
  14. vue渲染大量数据优化_vue大数据表格卡顿问题的完美解决方案
  15. JNI/NDK开发指南(十一)——JNI异常处理
  16. 大前端CPU优化技术--NEON intrinsics进阶
  17. 深海的诱惑:如何成为一名潜水员
  18. 怎么直接压缩图片?好用的图片压缩工具推荐
  19. ubuntu安装samba共享文件夹并设置匿名用户登陆
  20. 机器视觉 OpenCV—python 多目标跟踪与视频分析

热门文章

  1. datanode启动后闪退_网友吐槽12306 App:不同意获取个人信息就会“闪退”
  2. html可编辑下拉选项卡,bootstrap可编辑下拉框jquery.editable-select
  3. html 导航菜单切换效果,纯CSS实现Tab导航栏切换
  4. linux 按序号创建文件夹,在Linux终端中创建M3U播放列表的方法
  5. 华为路由器配置文件备份与恢复
  6. django 使用新的虚拟环境
  7. 暗渡陈仓:用低消耗设备进行破解和渗透测试2.3 本章小结
  8. 《精通LabVIEW虚拟仪器程序设计与案例实现》一2.6 VI的创建与编辑
  9. TCP/IP的全部IP协议号
  10. ucosiii 钩子函数