sql >> Database teknologi >  >> RDS >> Mysql

Sådan bruger du GROUP BY til at sammensætte strenge i mysql

Du kan bruge GROUP_CONCAT() funktion få værdierne i en enkelt række, og du kan bruge brugerdefinerede variabler til at tildele tallet til hver værdi i sid gruppe:

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
 

Se SQL Fiddle with Demo , Resultatet er:

| SID | STRING | ----------------------- | 1 | 1. AAA 2. BBB | | 2 | 1. CCC | | 3 | 1. ZZZ 2. EEE |

  1. SQL count(*) ydeevne

  2. NULL vs. 'uendeligt' i PostgreSQL-områdetyper

  3. Udforsk de forskellige måder at kryptere dine MariaDB-data på

  4. Udførelse af flere sætninger med Postgresql via SQLAlchemy fortsætter ikke ændringer