Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak używać GROUP BY do łączenia ciągów w mysql

Możesz użyć GROUP_CONCAT() funkcja pobiera wartości do jednego wiersza i możesz użyć zmiennych zdefiniowanych przez użytkownika, aby przypisać numer do każdej wartości w sid grupa:

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

Zobacz SQL Fiddle z wersją demonstracyjną , Wynik:

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Czy możemy kontrolować kolejność wyrażeń LINQ za pomocą Skip(), Take() i OrderBy()

  2. Połącz się ze zdalną bazą danych MySQL za pomocą Pythona

  3. JQuery Datatable — Podział pojedynczej komórki na wiele kolumn w celu zapewnienia czytelności?

  4. Jak ustawić domyślny obraz (no_pic.gif) php?

  5. Podział w zapytaniu MySQL