phpMyAdmin
 sql >> Teknologi Basis Data >  >> Database Tools >> phpMyAdmin

MySQL - Kueri menggabungkan baris dengan id yang sama dan menyimpan semua entri untuk id itu tetapi sebagai satu catatan

Masalahnya adalah MySQL tidak memiliki cara yang baik untuk menghitung baris. Penggunaan konstanta tidak dijamin berfungsi, sayangnya, menurut dokumentasi MySQL. Ini sering berhasil, tetapi juga bisa menjadi masalah.

Saya menyarankan agar Anda menggabungkan nama-nama itu menjadi satu bidang. Hasilnya akan terlihat seperti:

1     tree,rose
2     tree
3     tree,bush,rose

Menggunakan SQL:

select plantid, group_concat(name separator ',')
from t
group by plantid

Jika Anda benar-benar menginginkan nama di kolom terpisah, ada dua opsi yang muncul di benak Anda. Salah satunya adalah dengan menggunakan hasil dari atas dan kemudian mengurai hasilnya menjadi string yang terpisah. Alternatif lainnya adalah dengan menggunakan self-join and aggregation untuk menghitung nomor urut, seperti ini:

select p.plantid, p.name, count(*) as seqnum
from t p left outer join
     t pprev
     on p.plantid = pprev.plantid and
        p.name >= pprev.name
group by p.plantid, p.name

Dan gunakan ini sebagai subquery.




  1. DBeaver
  2.   
  3. phpMyAdmin
  4.   
  5. Navicat
  6.   
  7. SSMS
  8.   
  9. MySQL Workbench
  10.   
  11. SQLyog
  1. Kesalahan MySQL berkata:Dokumentasi Tidak dapat terhubung:pengaturan tidak valid. [Ubuntu]

  2. Apakah ada alat seperti phpMyAdmin yang dapat dikonfigurasi untuk mengakses hanya satu database?

  3. Gunakan phpMyAdmin untuk mengelola database Anda

  4. phpMyAdmin tidak menampilkan daftar tabel untuk database yang pasti memiliki tabel

  5. phpmyadmin.pma_table_uiprefs tidak ada