+----+------+ | id | name | +----+------+ | 1 | a | | 1 | b | | 1 | c | | 1 | d | | 2 | a | | 2 | b | | 2 | c | | 3 | d | +----+------+ 从里面取数据要求完成如下效果:
+----+--------+ | id | name | +----+--------+ | 1 | a,b,c,d | | 2 | a,b,c | | 3 | d | +----+--------+
在MySQL4.1中,加入了GROUP_CONCAT这个函数,我们就可以很轻松的完成这个任务
SQL代码
SELECT `id`,GROUP_CONCAT(`name` ORDERBY `name` DESC SEPARATOR ",") AS name FROM `ta` GROUPBY `id`
但是如果要取得每个ID的前2个数据时即完成如下效果:
+----+------+ | id | name | +----+------+ | 1 | a,b | | 2 | a,b | | 3 | d | +----+------+