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. Django设置联合唯一约束 -- migrate时报错处理

    异常信息: a unique database constraint for 2 or more fields together 场景描述: 对于ORM中多对多关系的中间表,如果该关系表是手动创建的, ...

  2. Kotlin 语言作为Android新的官方语言

    苹果用 swift 作为官方语言替代 object-c  ; 谷歌 刚开完io大会 也宣布 用  kotlin 作为官方语言 替代java.工具还是xcode ,android studio. 来自于 ...

  3. Intellij IDEA 环境配置与使用

    Intellij IDEA 是我感觉最牛X的IDE开发工具,没有之一! 先share一篇教程: http://pan.baidu.com/s/1i3fzJff 调整字体 设置默认的JDK 显示行号 版 ...

  4. Intent的那些事儿

    请原谅我用这么文艺的标题来阐释一颗无时无刻奔腾着的2B青年的心.可是今天要介绍的Intent绝不2B,甚至在我看来,或许还有些许飘逸的味道,至于飘逸在哪里呢?那我们就好好来剖析剖析Intent和它的好 ...

  5. python学习: 优秀Python学习资源收集汇总--转

    Python是一种面向对象.直译式计算机程序设计语言.它的语法简捷和清晰,尽量使用无异义的英语单词,与其它大多数程序设计语言使用大括号不一样,它使用縮进来定义语句块.与Scheme.Ruby.Perl ...

  6. js设计模式总结1

    js设计模式有很多种,知道不代表会用,更不代表理解,为了更好的理解每个设计模式,对每个设计模式进行总结,以后只要看到总结,就能知道该设计模式的作用,以及模式存在的优缺点,使用范围. 本文主要参考张容铭 ...

  7. Git学习笔记4

    现在,远程库已经准备好了,下一步是用命令git clone克隆一个本地库: $ git clone git@github.com:michaelliao/gitskills.git 要克隆一个仓库,首 ...

  8. POJ 2234 Matches Game (尼姆博弈)

    题目链接: https://cn.vjudge.net/problem/POJ-2234 题目描述: Here is a simple game. In this game, there are se ...

  9. 一个Time TodoList实例了解redux在wepy中的使用

    @subject: wepy-redux-time-todo @author: leinov @date:2018-10-30 @notice: 小程序(wepy)开发群110647537 欢迎加入 ...

  10. ASP.NET MVC呼叫WCF Service的方法

    本演示,Insus.NET操练asp.net mvc的应用程序,虽然以前有写过:<MVC应用程序使用Wcf Service>http://www.cnblogs.com/insus/p/3 ...