Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Mengemas kini Nilai Baris Jadual daripada Baris Padan dalam Jadual Yang Sama?

Bagaimana untuk Mengemas kini Nilai Baris Jadual daripada Baris Padan dalam Jadual Yang Sama?

Linda Hamilton
Linda Hamiltonasal
2024-11-18 01:38:02500semak imbas

How to Update Table Row Values from Matching Rows in the Same Table?

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:

  • Klausa WHERE penapis untuk baris yang dt1.NAME sepadan dengan dt2.NAME, menunjukkan baris dengan nilai 'NAME' yang sama.
  • Ia juga menyemak baris yang dt1.VALUE kosong (''), menandakan rekod yang memerlukan kemas kini.
  • Akhir sekali, dt2.VALUE tidak kosong, memastikan kemas kini hanya berlaku daripada baris dengan sah nilai.

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn