• 发现一个巨好用的神仙函数,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 '分隔符'] )

  • 相关阅读:
    a标签href不跳转 禁止跳转
    重新安装 tcp/ip协议
    痤疮的治疗
    tuxedo 强制重启
    山西企业主要指标稳步回升 运行渐入平稳轨道
    unix/linux 环境软件调试笔记
    连连看消重算法
    oracle sql developer guide
    取某字段最大值所在的的记录
    食指的《相信未来》
  • 原文地址:https://www.cnblogs.com/zhangqian27/p/12622900.html
Copyright © 2020-2023  润新知