MySQLMariadbGROUP_CONCAT 函数使用介绍

By:授客 QQ1033553122

语法:

GROUP_CONCAT([DISTINCT] column_name [ORDER BY 序字段 ASC/DESC] [SEPARATOR '分隔符'])

注:测试时发现,排序似乎不起作用

实践

构造数据:

CREATE TABLE tb_test(

order_id INT,

goods_id INT,

user_name VARCHAR(7)

);

INSERT INTO tb_test VALUES(1000000001, 1, '授客'), (1000000001, 2, '授客'), (1000000001, 3, '授客'),(1000000002, 4, '小谢'), (1000000002, 5, '小谢'), (1000000002, 6, '小谢');

SELECT * FROM tb_test;


例子
1

查询每个用户购买的商品(按user_name分组,显示其购买的所有商品)

SELECT t1.`order_id` AS '订单号',

t1.`user_name` AS '用户名',

GROUP_CONCAT((CASE WHEN t1.`goods_id` = 1 THEN '小苹果' 
WHEN t1.`goods_id` = 2 THEN '雪梨'
WHEN t1.`goods_id` = 3 THEN '香蕉'
WHEN t1.`goods_id` = 4 THEN '小李子'
WHEN t1.`goods_id` = 5 THEN '芭乐'
WHEN t1.`goods_id` = 6 THEN '葡萄'
END)) AS '商品'

FROM tb_test t1

GROUP BY t1.`user_name`;

结果:


例子
2

查询每个用户购买的商品(按user_name分组,显示其购买的所有商品),商品之间用";"分隔

SELECT t1.`order_id` AS '订单号',

t1.`user_name` AS '用户名',

GROUP_CONCAT((CASE WHEN t1.`goods_id` = 1 THEN '小苹果' 
WHEN t1.`goods_id` = 2 THEN '雪梨'
WHEN t1.`goods_id` = 3 THEN '香蕉'
WHEN t1.`goods_id` = 4 THEN '小李子'
WHEN t1.`goods_id` = 5 THEN '芭乐'
WHEN t1.`goods_id` = 6 THEN '葡萄'
END) SEPARATOR ';') AS '商品'

FROM tb_test t1

GROUP BY t1.`user_name`;

结果:


例子
3

查询每个用户购买的商品(按user_name分组,显示其购买的所有商品),商品名称不重复

SELECT t1.`order_id` AS '订单号',

t1.`user_name` AS '用户名',

GROUP_CONCAT((CASE WHEN t1.`goods_id` = 1 THEN '小苹果' 
WHEN t1.`goods_id` = 2 THEN '雪梨'

WHEN t1.`goods_id` = 3 THEN '香蕉'
WHEN t1.`goods_id` = 4 THEN '小李子'

WHEN t1.`goods_id` = 5 THEN '芭乐'
WHEN t1.`goods_id` = 6 THEN '葡萄'
END) ) AS '商品'

FROM tb_test t1

GROUP BY t1.`user_name`;

运行结果:

修改脚本如下:

SELECT t1.`order_id` AS '订单号',

t1.`user_name` AS '用户名',

GROUP_CONCAT(DISTINCT (CASE WHEN t1.`goods_id` = 1 THEN
'小苹果' 
WHEN t1.`goods_id` = 2 THEN '雪梨'

WHEN t1.`goods_id` = 3 THEN '香蕉'
WHEN t1.`goods_id` = 4 THEN '小李子'

WHEN t1.`goods_id` = 5 THEN '芭乐'
WHEN t1.`goods_id` = 6 THEN '葡萄'
END) ) AS '商品'

FROM tb_test t1

GROUP BY t1.`user_name`;

运行结果如下:

Mariadb MySQL、Mariadb中GROUP_CONCAT函数使用介绍的更多相关文章

  1. MySQL中group_concat函数深入理解

    本文通过实例介绍了MySQL中的group_concat函数的使用方法,比如select group_concat(name) . 一.MySQL中group_concat函数 完整的语法如下: gr ...

  2. MySQL中group_concat函数

    本文通过实例介绍了MySQL中的group_concat函数的使用方法,比如select group_concat(name) .MySQL中group_concat函数完整的语法如下:group_c ...

  3. MySQL中group_concat函数 --- 很有用的一个用来查询出所有group by 分组后所有 同组内的 内容

    本文通过实例介绍了MySQL中的group_concat函数的使用方法,比如select group_concat(name) . MySQL中group_concat函数 完整的语法如下: grou ...

  4. MySQL中group_concat函数-和group by配合使用

    MySQL中group_concat函数 完整的语法如下: group_concat([DISTINCT] 要连接的字段 [Order BY ASC/DESC 排序字段] [Separator '分隔 ...

  5. mysql中group_concat函数用法

    该函数返回带有来自一个组的连接的非NULL值的字符串结果.该函数是一个增强的Sybase SQL Anywhere支持的基本LIST()函数. 语法结构: GROUP_CONCAT([DISTINCT ...

  6. MYSQL中group_concat( )函数中参数的排序方法

    使用mysql中的group_concat( )函数连接指定字段时,可以先对该字段进行排序. PS:是因为二刷mysql的51道题的第12题遇到的:查询和" 01 "号同学学习的课 ...

  7. 关于Mysql中GROUP_CONCAT函数返回值长度的坑

    1.GROUP_CONCAT函数: 功能:将group by产生的同一个分组中的值连接起来,返回一个字符串结果. 语法:group_concat( [distinct] 要连接的字段 [order b ...

  8. 关于mysql中GROUP_CONCAT函数的使用

    偶然看到公司存储过程中有个字符串拼接的函数,改bug过程中使用到了,还挺有用的,于是记录下来方便记忆,帮助有需要的人. 这是我需要整理的串,他是调用了一个存储过程,传入组织机构的id和迭代层数,返回来 ...

  9. MySQL中group_concat()函数的排序方法

    group_concat()函数的参数是可以直接使用order by排序的.666..下面通过例子来说明,首先看下面的t1表. 比如,我们要查看每个人的多个分数,将该人对应的多个分数显示在一起,分数要 ...

随机推荐

  1. 课程一(Neural Networks and Deep Learning),第四周(Deep Neural Networks)——2.Programming Assignments: Building your Deep Neural Network: Step by Step

    Building your Deep Neural Network: Step by Step Welcome to your third programming exercise of the de ...

  2. python解析json数据

    现在的API接口多为xml或json,json解析更简洁相对xml来说 以豆瓣的API接口为例,解析返回的json数据: https://api.douban.com/v2/book/1220562 ...

  3. VMWare Workstation 11的安装

    不多说,直接上干货! 说白了   VMWare Workstation是收费的! VMware Player 和 VirtualBox是免费的! 虚拟机软件可让你在一个操作系统上直接运行的多个不同的虚 ...

  4. OopMap介绍

    摘自:http://blog.csdn.net/woaigaolaoshi/article/details/51439227 在HotSpot中,对象的类型信息里有记录自己的OopMap,记录了在该类 ...

  5. Ubuntu16.04安装mac主题之图标居中(百度经验)

    ubuntu14.04怎么把桌面任务栏调到下方,像Mac那样的 50 匿名 | 浏览 22789 次 我有更好的答案 2015-11-30 16:58 最佳答案   先看图片,感兴趣往下看.按照步骤一 ...

  6. ASP.NET MVC验证码演示(Ver2)

    前一版本<ASP.NET MVC验证码演示>http://www.cnblogs.com/insus/p/3622116.html,Insus.NET还是使用了Generic handle ...

  7. Maven为不同环境配置打包

    在开发过程中经常要遇到为不同的环境打包,这里面最主要的问题在于,不同环境的配置是不一样的,如果为不同环境打包每次都手工修改配置,那不但工作量大,而且很容易出错.如果用ant的话,用变量加上replac ...

  8. PetaPoco源代码学习--1.使用的Attribute介绍

    新版本的PetaPoco使用特性进行注解的形式来代替的老版本的映射类的形式.新版本中使用的特性主要包括以下几种: 名称   用途 TableNameAttribute Class 指定POCO实体类对 ...

  9. 网页中通过js修改img的src属性刷新图片时,图片缓存问题现象表述及问题解决【ps:引用大神案例http://blog.csdn.net/goodleiwei/article/details/50737548】

    问题:上传一张图片,通过js更新src属性刷新图片使其即时显示时, 当img的src当前的url与上次地址无变化时(只更改图片,名称不变,不同图片名称相同)图片不变化(仍显示原来的图片) 但通过fir ...

  10. Oracle总结之plsql编程(基础七)

    紧接基础六,对oracle角色和权限的管理之后,在接下来的几次总结中来就最近工作中用过的plsql编程方面的知识进行总结,和大家分享! 原创作品,转自请注明出处:https://www.cnblogs ...