Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Mengemas kini Nilai NULL dalam Jadual dengan Data daripada Baris Berkongsi Nama Yang Sama?

Bagaimana untuk Mengemas kini Nilai NULL dalam Jadual dengan Data daripada Baris Berkongsi Nama Yang Sama?

Barbara Streisand
Lepaskan: 2024-11-12 19:43:02
asal
374 orang telah melayarinya

How to Update NULL Values in a Table with Data from Rows Sharing the Same Name?

Mengemas kini Baris dengan Data daripada Adik Beradik Meja yang Sama

Bayangkan jadual dengan struktur yang menyerupai ini:

ID NAME VALUE
1 Test VALUE1
2 Test2 VALUE2
1 Test2 NULL
4 Test NULL
1 Test3 VALUE3

Tugas anda ialah mengisi NULL "VALUE" sel dengan data daripada baris lain yang mengandungi perkara yang sama "NAME" (iaitu, "Ujian" dan "Ujian2" harus mewarisi nilai daripada pendahulunya). Hasil yang diinginkan ialah:

ID NAME VALUE
1 Test VALUE1
2 Test2 VALUE2
1 Test2 VALUE2
4 Test VALUE1
1 Test3 VALUE3

Cabarannya terletak pada rujukan baris dalam jadual yang sama yang berkongsi nilai "NAME" tertentu. Penyelesaiannya melibatkan penggunaan pernyataan JOIN:

UPDATE data_table t, (SELECT DISTINCT ID, NAME, VALUE
                        FROM data_table
                       WHERE VALUE IS NOT NULL AND VALUE != '') t1
   SET t.VALUE = t1.VALUE
 WHERE t.ID = t1.ID
   AND t.NAME = t1.NAME
Salin selepas log masuk

Dalam pernyataan ini, subquery (T1) mengekstrak baris yang berbeza dengan nilai "VALUE" bukan NULL dan bukan kosong. Pertanyaan utama (t) kemudian bergabung dengan subquery ini pada medan "ID" dan "NAME" untuk mengenal pasti baris yang akan dikemas kini. Akibatnya, sel "VALUE" kosong diisi dengan nilai yang sepadan daripada baris bukan kosong dengan nilai "NAME" yang sama.

Atas ialah kandungan terperinci Bagaimana untuk Mengemas kini Nilai NULL dalam Jadual dengan Data daripada Baris Berkongsi Nama Yang Sama?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan