Pengenalan:
Membentuk semula data daripada format panjang (tinggi) kepada format yang luas boleh menjadi satu keperluan apabila memanipulasi data. MySQL menyediakan ciri yang membolehkan anda melaksanakan operasi ini tanpa bergantung pada bahasa skrip luaran.
Mencipta Jadual Format Lebar:
Langkah pertama adalah untuk mendapatkan senarai semua kunci berbeza yang terdapat dalam format panjang jadual:
SELECT DISTINCT key FROM table;
Gunakan kekunci yang diperoleh untuk mencipta jadual baharu dengan struktur format lebar yang dikehendaki:
CREATE TABLE wide_table ( country VARCHAR(255), key1 VARCHAR(255), key2 VARCHAR(255), ..., keyN VARCHAR(255) );
Mengisi Nilai Jadual:
Akhir sekali, masukkan data ke dalam jadual format lebar menggunakan pertanyaan tab silang:
INSERT INTO wide_table ( country, key1, key2, ..., keyN ) SELECT country, MAX(IF(key = 'key1', value, NULL)) AS key1, MAX(IF(key = 'key2', value, NULL)) AS key2, ..., MAX(IF(key = 'keyN', value, NULL)) AS keyN FROM table GROUP BY country;
Contoh:
Pertimbangkan jadual input format panjang:
country | attrName | attrValue | key |
---|---|---|---|
US | President | Obama | 2 |
US | Currency | Dollar | 3 |
China | President | Hu | 4 |
China | Currency | Yuan | 5 |
Menggunakan langkah di atas, kami boleh membentuk semula data menjadi luas format:
Output Format Luas:
country | President | Currency |
---|---|---|
US | Obama | Dollar |
China | Hu | Yuan |
Faedah Menggunakan SQL:
Atas ialah kandungan terperinci Bagaimana untuk Membentuk Semula Data dengan Cekap dari Format Panjang ke Lebar dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!