MySQL ialah sistem pengurusan pangkalan data hubungan kuat yang biasa digunakan untuk menyimpan dan mengurus sejumlah besar data. Dalam aplikasi praktikal, kami sering menghadapi situasi di mana data perlu bersarang dan diratakan. Artikel ini akan memperkenalkan cara menggunakan MySQL untuk mengetatkan dan meratakan data, dan memberikan contoh kod yang sepadan.
1. Pemprosesan data bersarang
Dalam beberapa senario, kita perlu menukar struktur data bersarang kepada struktur rata untuk pertanyaan dan analisis yang lebih mudah. Berikut ialah beberapa cara biasa untuk menangani struktur data bersarang.
Pertanyaan sertai ialah salah satu cara paling biasa untuk mengendalikan data bersarang. Tukar data bersarang kepada hasil rata dengan menyertai jadual yang sama atau jadual yang berbeza beberapa kali.
SELECT a.id, b.name AS category, c.name AS product FROM table_a a LEFT JOIN table_b b ON a.category_id = b.id LEFT JOIN table_c c ON a.product_id = c.id;
Dalam contoh di atas, melalui berbilang pertanyaan sambungan, category_id dan product_id dalam jadual a dikaitkan dengan id dalam jadual b dan jadual c, dan hasil yang rata diperolehi.
Self-join merujuk kepada kaedah menyambungkan jadual itu sendiri dengan jadual lain untuk pertanyaan. Melalui penyertaan sendiri, kami boleh mengendalikan beberapa struktur data bersarang.
SELECT a.id, a.name AS parent_name, b.name AS child_name FROM table_a a LEFT JOIN table_a b ON a.id = b.parent_id;
Dalam contoh di atas, jadual a melakukan pertanyaan sambungan dengan dirinya sendiri, mengaitkan parent_id dengan id dan memperoleh hasil yang rata.
2. Meratakan data
Dalam beberapa senario, kita perlu menukar struktur data rata kepada struktur bersarang untuk penyimpanan dan paparan yang lebih mudah. Berikut adalah beberapa kaedah biasa untuk memproses struktur data rata.
Dengan menggunakan subkueri, kami boleh menukar data rata kepada struktur data bersarang.
SELECT id, name, ( SELECT GROUP_CONCAT(product_name) FROM table_b WHERE table_b.id = table_a.id ) AS products FROM table_a;
Dalam contoh di atas, id dalam jadual a dikaitkan dengan id dalam jadual b melalui subkueri, dan GROUP_CONCAT digunakan untuk menggabungkan berbilang nama_produk ke dalam satu medan.
Ekspresi CASE boleh mengembalikan hasil yang berbeza mengikut syarat Dengan menggunakan ungkapan CASE, kami boleh menukar data rata kepada struktur data bersarang.
SELECT id, name, CASE WHEN category_id = 1 THEN 'Category A' WHEN category_id = 2 THEN 'Category B' ELSE 'Other' END AS category FROM table_a;
Dalam contoh di atas, nama kategori yang berbeza dikembalikan mengikut kategori_id yang berbeza melalui ungkapan CASE. Ringkasan Kaedah ini boleh membantu kami membuat pertanyaan, menganalisis dan memaparkan data dengan lebih mudah serta meningkatkan kecekapan dan fleksibiliti pemprosesan data.
Walaupun artikel ini menyediakan beberapa kaedah dan contoh biasa, kaedah pemprosesan sebenar mungkin berbeza-beza bergantung pada struktur dan keperluan data tertentu. Dalam aplikasi praktikal, kita harus memilih kaedah yang paling sesuai untuk pemprosesan data mengikut situasi tertentu.
Saya harap artikel ini akan membantu anda memahami penyahtan dan perataan data dalam MySQL Jika anda mempunyai sebarang pertanyaan, sila tinggalkan mesej untuk perbincangan.
Atas ialah kandungan terperinci Bagaimana untuk menyahsarang dan meratakan data dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!