zoukankan      html  css  js  c++  java
  • Mariadb MySQL、Mariadb中GROUP_CONCAT函数使用介绍

    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`;

     

    运行结果:

    Mariadb <wbr>MySQL、Mariadb中GROUP_CONCAT函数使用介绍

     

    修改脚本如下:

    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 <wbr>MySQL、Mariadb中GROUP_CONCAT函数使用介绍

     

  • 相关阅读:
    webpack高级概念code splitting 和 splitChunks (系列五)
    webpack高级概念Develoment 和 Production 不同环境的配置 (系列四)
    webpack高级概念Tree Shaking (树摇)(系列三)
    HarmonyOS三方件开发指南(16)-VideoCache 视频缓存
    鸿蒙开源第三方组件——uCrop_ohos图片裁剪组件
    Hi3516如何连接Wifi(三)
    【鸿蒙学院】鸿蒙IDE迎来重大更新,新特性足以让你尖叫
    《鸿蒙系统物联网模组——Neptune 三天全攻略》课件、代码
    预览器和编辑器双重发力,DevEco Studio 2.1 Beta 3强势来袭
    强大的鸿蒙开发环境 —— DevEco Studio 2.1 Beta3发布
  • 原文地址:https://www.cnblogs.com/shouke/p/10157842.html
Copyright © 2011-2022 走看看