Mariadb MySQL、Mariadb中GROUP_CONCAT函數使用介紹

MySQLMariadbGROUP_CONCAT 函數使用介紹html

By:授客 QQ1033553122ide

語法:函數

GROUP_CONCAT([DISTINCT] column_name [ORDER BY 序字段 ASC/DESC] [SEPARATOR '分隔符'])post

注:測試時發現,排序彷佛不起做用測試

 

實踐spa

構造數據:htm

CREATE TABLE tb_test(blog

order_id INT,排序

goods_id INT,it

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函數使用介紹

相關文章
相關標籤/搜索