Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Mengubah Data MySQL ke Baris Tunggal dengan Pengepala Lajur Dinamik?
Masalah 1: Mendapatkan Data dalam Satu Baris Tunggal
Anda boleh menggunakan fungsi PIVOT untuk menukar data anda kepada format baris tunggal. Pertanyaan berikut mengubah suai percubaan anda sebelum ini untuk mencapai ini:
SELECT app_id, transaction_id, mobile_no, MAX(CASE WHEN node_id = 1 THEN entered_value END) AS Q1, MAX(CASE WHEN node_id = 2 THEN entered_value END) AS Q2, MAX(CASE WHEN node_id = 3 THEN entered_value END) AS Q3, MAX(CASE WHEN node_id = 4 THEN entered_value END) AS Q4, MAX(CASE WHEN node_id = 5 THEN entered_value END) AS Q5 FROM trn_user_log GROUP BY app_id, transaction_id, mobile_no;
Pertanyaan ini mengumpulkan baris mengikut app_id, transaction_id dan mobile_no dan menggunakan fungsi MAX untuk mendapatkan nilai maksimum yang dimasukkan untuk setiap lajur node_id, yang sepadan kepada nilai "Q" yang anda ingin paparkan.
Masalah 2: Menggunakan Lajur Nilai sebagai Nama Pengepala
Untuk menggunakan nilai dalam lajur customer_attribute sebagai nama pengepala, anda boleh menggunakan pernyataan CASE bersama-sama dengan kata kunci AS. Pertanyaan yang diubah suai adalah seperti berikut:
SELECT app_id, transaction_id, mobile_no, MAX(CASE WHEN node_id = 1 THEN entered_value END) AS CASE customer_attribute WHEN 'Q1' THEN entered_value END, MAX(CASE WHEN node_id = 2 THEN entered_value END) AS CASE customer_attribute WHEN 'Q2' THEN entered_value END, MAX(CASE WHEN node_id = 3 THEN entered_value END) AS CASE customer_attribute WHEN 'Q3' THEN entered_value END, MAX(CASE WHEN node_id = 4 THEN entered_value END) AS CASE customer_attribute WHEN 'Q4' THEN entered_value END, MAX(CASE WHEN node_id = 5 THEN entered_value END) AS CASE customer_attribute WHEN 'Q5' THEN entered_value END FROM trn_user_log GROUP BY app_id, transaction_id, mobile_no;
Dalam pertanyaan ini, pernyataan CASE digunakan dalam fungsi MAX untuk memilih nilai_masukan berdasarkan nilai atribut_pelanggan yang sepadan. Kata kunci AS memperuntukkan nilai atribut_pelanggan yang sepadan sebagai pengepala lajur.
Atas ialah kandungan terperinci Bagaimana untuk Mengubah Data MySQL ke Baris Tunggal dengan Pengepala Lajur Dinamik?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!