MySQL操作中,經(jīng)常會(huì)遇到將多條結(jié)果合并成一個(gè)字符串的需求,比如將某一列作為字符串返回,這時(shí)候我們可以使用GROUP_CONCAT()來實(shí)現(xiàn)這個(gè)功能。
SELECT GROUP_CONCAT(name) FROM items;
上面的SQL語(yǔ)句將items表中的name列合并成一個(gè)字符串返回。
GROUP_CONCAT()函數(shù)在拼接結(jié)果時(shí)可以使用分隔符,例如將多條記錄拼接成以逗號(hào)分隔的字符串:
SELECT GROUP_CONCAT(name SEPARATOR ',') FROM items;
也可以使用ORDER BY對(duì)結(jié)果進(jìn)行排序:
SELECT GROUP_CONCAT(name ORDER BY age DESC SEPARATOR ',') FROM items;
在GROUP_CONCAT()中如果需要拼接的字符串中包含逗號(hào)或者其他特殊字符,需要使用轉(zhuǎn)義符號(hào)進(jìn)行轉(zhuǎn)義:
SELECT GROUP_CONCAT(CONCAT_WS(',', name, age)) FROM items;
CONCAT_WS()函數(shù)將多個(gè)字符串拼接成一個(gè)字符串,使用指定的分隔符分隔。
使用GROUP_CONCAT()可以方便地將同一列中的多條記錄合并為一個(gè)字符串,并且可以進(jìn)行排序和分隔符的設(shè)置。