sql server 有很多方法 请问 mysql 怎么实现。别用函数和存储过程能否实现
create table tb(id int, value varchar(10))
insert into tb values(1, 'aa')
insert into tb values(1, 'bb')
insert into tb values(2, 'aaa')
insert into tb values(2, 'bbb')
insert into tb values(2, 'ccc')
go select id, [values]=stuff((select ','+[value] from tb t where id=tb.id for xml path('')), 1, 1, '')
from tb
group by id /*
id values
----------- --------------------
1 aa,bb
2 aaa,bbb,ccc (2 row(s) affected) */ drop table tb
http://topic.csdn.net/u/20090530/23/0b782674-4b0b-4cf5-bc1a-e8914aaee5ab.html?84461
帖子中我的回答
+------+-------+
| id | value |
+------+-------+
| 1 | aa |
| 1 | bb |
| 2 | aaa |
| 2 | bbb |
| 2 | ccc |
+------+-------+
5 rows in set (0.05 sec)mysql> select id,group_concat(`value`) as `values`
-> from tb
-> group by id;
+------+-------------+
| id | values |
+------+-------------+
| 1 | aa,bb |
| 2 | aaa,bbb,ccc |
+------+-------------+
2 rows in set (0.00 sec)mysql>