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

Mengonversi Kumpulan Hasil MySQL dari Baris ke Kolom

Mmmm... EAV. Salah satu dari banyak alasan untuk menghindari EAV (entity-attribute_value) adalah bahwa mereka lebih sulit untuk dilaporkan dan dikueri. Namun, jika atribut yang Anda inginkan diketahui sebelumnya, Anda dapat melakukan sesuatu seperti:

Select id
    , Min( Case When name = 'Make' Then attribute_value End ) As Make
    , Min( Case When name = 'Year' Then attribute_value End ) As Year
    , Min( Case When name = 'Type' Then attribute_value End ) As Type
    , Min( Case When name = 'Axles' Then attribute_value End ) As Axles
    , Min( Case When name = 'Size' Then attribute_value End ) As Size
    , Min( Case When name = 'Frame' Then attribute_value End ) As Frame
    , ...
From attributes
Where name In('Make','Year','Type','Axles','Size','Frame',....)
Group By id

Sekarang, MySQL, memang memiliki GROUP_CONCAT yang memungkinkan Anda menggabungkan beberapa nilai untuk atribut yang sama ke dalam daftar jika Anda mengizinkannya (mis. jika suatu entitas dapat memiliki beberapa atribut Make).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Apakah ada cara untuk membatasi hasil dengan ELOQUENT ORM dari Laravel?

  2. membaca dari MySQL lebih cepat atau membaca dari file lebih cepat?

  3. Dapatkan sisa hari, jam, dan menit menggunakan mySql

  4. Bagaimana menampilkan data relasional di yii2

  5. MySQL salah mengizinkan entri duplikat ketika salah satu bidang yang terlibat adalah NULL