1. 程式人生 > >mysql查詢分組顯示資料結果之GROUP_CONCAT使用

mysql查詢分組顯示資料結果之GROUP_CONCAT使用

用mysql語句怎麼把這裡寫圖片描述這樣的資料變成這裡寫圖片描述這樣,使用group_concat()函式;

select GROUP_CONCAT(id) AS id,name from `de_demo1` group by name

group_concat 函式:
該函式返回帶有來自一個組的連線的非NULL值的字串結果。該函式是一個增強的Sybase SQL Anywhere支援的基本LIST()函式。
語法結構:

GROUP_CONCAT([DISTINCT] expr [,expr ...] [ORDER BY {unsigned_integer | col_name | expr} [ASC | DESC] [,col_name ...
]] [SEPARATOR str_val])
DISTINCT:去除重複值

expr [,expr ...]:一個或多個欄位(或表示式)

ORDER BY {unsigned_integer | col_name | expr} [ASC | DESC] [,col_name ...]:根據欄位或表示式進行排序,可多個

SEPARATOR str_val:分隔符(預設為英文逗號)

注意:

1. 最大長度(字元)限制

系統變數:group_concat_max_len

SET [SESSION | GLOBAL] group_concat_max_len = val;
val必須是無符號整數

用了GROUP_CONCAT函式,SELECT
語句中的LIMIT語句起不了任何作用。 2. INT型別陷阱 連線的欄位為INT型別時,低版本或出現返回的結果不是逗號分隔的字串,而是byte[]。 此時,需要用CAST或CONVERT函式進行轉換。