在MySQL中,有時候需要將多行數據合并成一條,這通常是通過使用GROUP_CONCAT函數來實現的。
GROUP_CONCAT函數是一個聚合函數,用于將多行值連接為一行。語法如下:
GROUP_CONCAT([DISTINCT] expr [,expr ...] [ORDER BY {unsigned_integer | col_name | expr} [ASC | DESC] [,col_name ...]] [SEPARATOR str_val])
其中,DISTINCT指定結果中是否去除重復值。expr是需要連接的列名或表達式,ORDER BY指定連接后的結果的排序方式,SEPARATOR指定連接后的結果中各個值之間的分隔符。
例如下面的查詢結果:
SELECT GROUP_CONCAT(name ORDER BY age SEPARATOR ', ') FROM student; +---------------------------+ | GROUP_CONCAT(name) | +---------------------------+ | John, Smith, Johnson, Lee | +---------------------------+
在上面的例子中,我們將student表中的name列連接成了一條字符串,各個值之間用逗號加空格分隔,并按照age列進行排序。
需要注意的是,GROUP_CONCAT函數默認使用的分隔符是逗號(,),如果要使用其他分隔符,需要指定SEPARATOR參數。