普通查询
id sid string
5 1 AAA
6 1 BBB
7 2 CCC
8 3 ZZZ
9 3 EEE
我想要
sid string
1 1. AAA 2. BBB
2 1. CCC
3 1. ZZZ 2. EEE
你知道怎么做吗?
答案 0 :(得分:3)
您可以使用GROUP_CONCAT()
函数将值获取到一行,您可以使用用户定义的变量为sid
组中的每个值分配数字:
select sid,
group_concat(concat(rn, '. ', string) ORDER BY id SEPARATOR ' ') string
from
(
select id,
sid,
string,
@row:=case when @prev=sid then @row else 0 end +1 rn,
@prev:=sid
from yourtable
cross join (select @row:= 0, @prev:=null) r
order by id
) src
group by sid
见SQL Fiddle with Demo,结果是:
| SID | STRING |
-----------------------
| 1 | 1. AAA 2. BBB |
| 2 | 1. CCC |
| 3 | 1. ZZZ 2. EEE |
答案 1 :(得分:1)
查看 GROUP_CONCAT() function of MySQL。
但是我会在PHP中编号。