发现一个巨好用的神仙函数,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;

  结果就变成这样

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

猜你喜欢

转载自www.cnblogs.com/zhangqian27/p/12622900.html