Можете да използвате GROUP_CONCAT()
функция получава стойностите в един ред и можете да използвате дефинирани от потребителя променливи, за да присвоите номера на всяка стойност в sid
група:
select sid, group_concat(concat(rn, '. ', string) ORDER BY id SEPARATOR ' ') stringfrom( изберете id, sid, string, @row:=случай, когато @prev=sid след това @row else 0 край +1 rn, @prev:=sid от кръстосаното присъединяване на вашата таблица (изберете @row:=0, @prev:=null) r подреждане по id) srcgroup по sid
Вижте SQL Fiddle с демонстрация , Резултатът е:
<предварителен код>| SID | STRING |-----------------------| 1 | 1. AAA 2. BBB || 2 | 1. CCC || 3 | 1. ZZZ 2. EEE |