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

Jak używać GROUP_CONCAT w CONCAT w MySQL

select id, group_concat(`Name` separator ',') as `ColumnName`
from
(
  select 
    id, 
    concat(`Name`, ':', group_concat(`Value` separator ',')) as `Name`
  from mytbl
  group by 
    id, 
    `Name`
) tbl
group by id;

Możesz zobaczyć to zaimplementowane tutaj:Sql Fiddle Demo . Dokładnie to, czego potrzebujesz.

Aktualizacja Dzielenie w dwóch krokach. Najpierw otrzymujemy tabelę zawierającą wszystkie wartości (oddzielone przecinkami) względem unikalnego[Nazwa,id]. Następnie z otrzymanej tabeli otrzymujemy wszystkie nazwy i wartości jako pojedynczą wartość dla każdego unikalnego identyfikatora. Zobacz to wyjaśnione tutaj Pokaz SQL Fiddle (przewiń w dół, ponieważ ma dwa zestawy wyników)

Edytuj Wystąpił błąd w czytaniu pytania, pogrupowałem tylko według id. Ale dwa group_contacts są potrzebne, jeśli (wartości mają być połączone pogrupowane według nazwy i identyfikatora, a następnie nad wszystkim według identyfikatora). Poprzednia odpowiedź to

select 
id,group_concat(concat(`name`,':',`value`) separator ',')
as Result from mytbl group by id

Możesz zobaczyć to zaimplementowane tutaj:Demo SQL Fiddle



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. System resetowania hasła w PHP

  2. Tworzenie i używanie procedur składowanych MySQL — samouczek

  3. Obsługa połączeń i ograniczanie przepustowości za pomocą ProxySQL

  4. Kod błędu:1005. Nie można utworzyć tabeli „...” (errno:150)

  5. Jak usunąć całą bazę danych MySQL