MySQL之group_concat与group by

1. group_concat与group by搭配使用;

group_concat()函数可以将同一分组内的同一字段值进行拼接,默认使用逗号分隔:

SELECT
	t.brand_name,
	t.category_name,
	GROUP_CONCAT( t.sale_num ) 
FROM
	`t_item` AS t 
GROUP BY
	t.category_name,
	t.brand_name;
-- 输出结果:
森马	休闲鞋	0,0,0,0,0,0,0,0,0,0
热风	休闲鞋	0,0,0,0,0,0,0,0,0
爱步	休闲鞋	0,0,0,0,0,0,0
特步	休闲鞋	0,0,0,0,0,0,0
百丽	休闲鞋	0,0,0,0,0,0,0,0

如果想换别的分隔符可以使用replace()函数替换掉逗号,比如用#符号

SELECT
	t.brand_name,
	t.category_name,
	REPLACE ( GROUP_CONCAT( t.sale_num ), ",", "#" ) 
FROM
	`t_item` AS t 
GROUP BY
	t.category_name,
	t.brand_name;
-- 输出结果
人本	休闲鞋	0#0#0#0#0#0#0#0#0#0#0#0#0
他她	休闲鞋	0#0#0#0#0#0#0#0#0#0
卓诗尼	休闲鞋	0#0#0#0#0#0#0#0#0#0
卡帝乐	休闲鞋	0#0#0#0#0#0#0#0#0#0#0#0
古奇天伦	休闲鞋	0#0#0#0#0#0#0#0#0#0
哥弟	休闲鞋	0#0#0#0#0#0#0#0

2.MySQL的优化可以从一下三个方面着手

  1. 库表结构优化
  2. 查询优化
  3. 索引优化
posted @ 2020-09-09 23:13  JaxYoun  阅读(79)  评论(0编辑  收藏  举报