Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Cara menggunakan GROUP_CONCAT dalam CONCAT di 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;

Anda dapat melihatnya diimplementasikan di sini :Demo Sql Fiddle . Persis seperti yang Anda butuhkan.

Perbarui Pemisahan dalam dua langkah. Pertama kita mendapatkan tabel yang memiliki semua nilai (dipisahkan koma) terhadap [Nama,id] yang unik. Kemudian dari tabel yang diperoleh kami mendapatkan semua nama dan nilai sebagai nilai tunggal terhadap setiap id unik. Lihat ini dijelaskan di sini Demo Fiddle SQL (gulir ke bawah karena memiliki dua set hasil)

Sunting Ada kesalahan dalam membaca soal, saya hanya mengelompokkan berdasarkan id. Tetapi dua group_contacts diperlukan jika (Nilai akan digabungkan dikelompokkan berdasarkan Nama dan id dan kemudian semuanya berdasarkan id). Jawaban sebelumnya adalah

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

Anda dapat melihatnya diimplementasikan di sini :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. Cara menggunakan indeks untuk meningkatkan kinerja kueri MySQL

  2. MySQL #1093 - Anda tidak dapat menentukan 'hadiah' tabel target untuk pembaruan dalam klausa FROM

  3. Bagaimana cara membagi string nama di mysql?

  4. MySQL - Jadikan Bidang yang Ada Unik

  5. Masukkan data dari satu tabel ke tabel lain di MySQL