Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Mengemas kini Nilai Baris Jadual daripada Baris Padan dalam Jadual Yang Sama?
Kemas kini Nilai Baris Jadual daripada Baris Padan dalam Jadual Yang Sama
Dalam situasi di mana jadual mengandungi ID bukan unik dan kunci komposit yang diperlukan untuk keunikan baris, mengemas kini nilai baris menggunakan data daripada baris lain dalam jadual yang sama boleh menimbulkan cabaran. Pertimbangkan senario berikut:
Diberikan jadual yang mengandungi data berikut:
ID | NAME | VALUE |
---|---|---|
1 | Test | VALUE1 |
2 | Test2 | VALUE2 |
1 | Test2 | |
4 | Test | |
1 | Test3 | VALUE3 |
Matlamatnya adalah untuk mengemas kini nilai untuk 'Test2' dan 'Test' dengan data daripada baris lain dengan 'NAMA' yang sama (ID bukan unik untuk pengenalan baris). Output yang dijangkakan hendaklah:
ID | NAME | VALUE |
---|---|---|
1 | Test | VALUE1 |
2 | Test2 | VALUE2 |
1 | Test2 | VALUE2 |
4 | Test | VALUE1 |
1 | Test3 | VALUE3 |
Untuk menangani cabaran ini, anda boleh memanfaatkan pertanyaan berikut:
UPDATE data_table dt1, data_table dt2 SET dt1.VALUE = dt2.VALUE WHERE dt1.NAME = dt2.NAME AND dt1.VALUE = '' AND dt2.VALUE != ''
Pertanyaan ini bergantung pada dua kejadian jadual yang sama (data_table alias sebagai dt1 dan dt2) untuk membandingkan data dan mengenal pasti baris yang layak untuk kemas kini:
Akibatnya, pertanyaan mengemas kini nilai dalam dt1 dengan data yang sepadan daripada dt2, dengan berkesan mengisi sel kosong dalam baris yang 'NAME' sepadan. Pendekatan ini membolehkan kemas kini nilai baris yang lancar dalam jadual yang sama, menyelesaikan cabaran awal.
Atas ialah kandungan terperinci Bagaimana untuk Mengemas kini Nilai Baris Jadual daripada Baris Padan dalam Jadual Yang Sama?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!