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. odoo第三方市场 -- 模块推荐

    odoo 除了开源,另一个非常给力的地方就是,强大的第三方应用市场: 你入坑后,会发现非常的好玩,全球还有这么多小伙伴并肩前行,共同成长. 第三方市场有很多不错的模块,当然,好东西,不是完全免费的! ...

  2. CentOS6.7-64bit编译spark-1.6.1和spark-1.3.1

    编译spark-1.6.1 tar -zxvf spark-1.6.1.tgz -C /usr/local/src/ cd /usr/local/src/spark-1.6.1/ #设置内存2G ex ...

  3. Git使用(3)

    1.查看本地和远程分支 git branch -a 删除本地分支 git branch -D branchName(D要大写) 删除远程分支 git push origin :branchName 2 ...

  4. Elasticsearch5.3.1 IK分词,同义词/联想搜索设置

    [大数据]-Elasticsearch5.3.1 IK分词,同义词/联想搜索设置  原文地址:http://www.cnblogs.com/NextNight/p/6837407.html --题外话 ...

  5. CDN基本工作过程

    看了一些介绍CDN的文章,感觉这篇是讲的最清楚的. 使用CDN会极大地简化网站的系统维护工作量,网站维护人员只需将网站内容注入CDN的系统,通过CDN部署在各个物理位置的服务器进行全网分发,就可以实现 ...

  6. 如何用ajax下载文件

    引子 在HTML5没来之前,浏览器想要下载文件,可能有这么几种方式: 借助a标签,<a href="学习资料.xlsx"></a> window.locat ...

  7. C#控件事件属性大全

    C#控件及常用设计整 1.窗体... 1 2.Label 控件... 3 3.TextBox 控件... 4 4.RichTextBox控件... 5 5.NumericUpDown 控件... 7 ...

  8. elasticsearch安装ansj分词器

    1.概述    elasticsearch用于搜索引擎,需要设置一些分词器来优化索引.常用的有ik_max_word: 会将文本做最细粒度的拆分.ik_smart: 会做最粗粒度的拆分.ansj等. ...

  9. (转)mysql升级5.5.20时遇到的问题:1548-Cannot load from mysql.proc. The table is probably corrupted

    LINUX下将mysql从5.1升级至5.5后,发现存储过程不能用了.创建和使用存储过程时就会提示Cannot load from mysql.proc. The table is probably ...

  10. GoogLeNetv1 论文研读笔记

    Going deeper with convolutions 原文链接 摘要 研究提出了一个名为"Inception"的深度卷积神经网结构,其目标是将分类.识别ILSVRC14数据 ...