zoukankan      html  css  js  c++  java
  • 发现一个巨好用的神仙函数,GROUP_CONCAT,被征服了

    我现在有这样一张表

    CREATE TABLE `test_group_concat` (
      `id` bigint(20) NOT NULL AUTO_INCREMENT,
      `user_id` bigint(20) NOT NULL COMMENT '用户编号',
      `sku_id` bigint(20) NOT NULL COMMENT '用户所购买的商品编号',
      `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
      `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '更新时间',
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8;
    

      需要查出每个用户所购买的所有商品

    SELECT
    	user_id,
    	sku_id
    FROM
    	test_group_concat
    

      查询出来的结果是这样,是不是比较丑

    我希望每个用户只显示一次,那只能group by,但是我们都知道group by是分组函数,非分组列只能显示一条,那我如果希望将所有的sku_id都查出来怎么办呢

    就可以用这个神仙函数

    SELECT
    	user_id,
    	GROUP_CONCAT(sku_id) sku_list
    FROM
    	test_group_concat
    GROUP BY
    	user_id;
    

      结果就变成这样

     是不是很神奇呀~~~~~

    还可以自定义哦~~~

    group_concat( [distinct] 要连接的字段 [order by 排序字段 asc/desc ] [separator '分隔符'] )

  • 相关阅读:
    ssh的配置[待写]
    回文检测题解
    叠积木/银河系英雄传说[NOI2002]题解
    酒店之王解题报告
    摆花解题报告
    摆渡车(noip2018 pj t3)
    NOIP2018 普及 凉凉记
    子矩阵(NOIP2014T4)
    花店橱窗布置(洛谷:P1854)
    我想大声告诉你
  • 原文地址:https://www.cnblogs.com/zhangqian27/p/12622900.html
Copyright © 2011-2022 走看看