


Bagaimanakah Saya Boleh Mengemas kini Nilai Lajur dalam Satu Jadual Berdasarkan Nilai daripada Jadual Lain?
Jan 17, 2025 am 04:57 AMMengemas kini Lajur Jadual Menggunakan Data daripada Jadual Lain
Panduan ini menunjukkan cara mengemas kini nilai lajur dalam satu jadual pangkalan data menggunakan data daripada yang lain, dengan mengandaikan kedua-dua jadual berkongsi medan yang sama untuk rekod yang sepadan. Mari kita pertimbangkan dua jadual, tableA
dan tableB
, dengan struktur yang serupa:
id | name | value |
---|---|---|
1 | Joe | 22 |
2 | Derk | 30 |
Matlamat kami adalah untuk mengemas kini lajur value
dalam tableB
dengan nilai yang sepadan daripada tableA
, memadankan baris berdasarkan lajur name
.
Kaedah 1: Menggunakan Subkueri
Pendekatan paling mudah melibatkan pernyataan UPDATE
dengan subkueri:
1 2 3 |
|
Pernyataan ini dikemas kini tableB.value
dengan value
dari tableA
tempat medan name
sepadan. Klausa WHERE EXISTS
memastikan bahawa hanya baris dengan nama yang sepadan dalam kedua-dua jadual dikemas kini, mengelakkan ralat jika nama wujud dalam tableB
tetapi tidak dalam tableA
.
Kaedah 2: Menggunakan JOIN
Kaedah yang lebih fleksibel menggunakan INNER JOIN
untuk pemadanan yang cekap:
1 2 3 |
|
Pendekatan ini secara langsung menyertai tableB
dan tableA
pada lajur name
dan mengemas kini tableB.value
dengan tableA.value
untuk setiap baris yang sepadan. Ini biasanya lebih pantas daripada menggunakan subkueri.
Kaedah 3: Kemas Kini Bersyarat dengan JOIN
Untuk kemas kini bersyarat, di mana anda mungkin ingin mengemas kini hanya dalam keadaan tertentu, gunakan pernyataan IF
atau CASE
dalam fasal SET
:
1 2 3 4 |
|
Contoh ini hanya mengemas kini tableB.value
jika tableA.value
lebih besar daripada 0 dan hanya untuk baris dengan tableA.name
ialah 'Joe'. Anda boleh menyesuaikan keadaan IF
atau CASE
untuk memenuhi keperluan khusus anda. Ingat untuk menggantikan 'Joe'
dengan keadaan yang sesuai untuk bekas penggunaan anda.
Pilih kaedah yang paling sesuai dengan keperluan anda. Kaedah 2 (menggunakan JOIN
) biasanya lebih disukai kerana kecekapan dan kebolehbacaannya, manakala Kaedah 3 menawarkan kawalan yang lebih besar ke atas proses kemas kini. Sentiasa sandarkan data anda sebelum menjalankan UPDATE
pernyataan.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengemas kini Nilai Lajur dalam Satu Jadual Berdasarkan Nilai daripada Jadual Lain?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Artikel Panas

Alat panas Tag

Artikel Panas

Tag artikel panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Kurangkan penggunaan memori MySQL di Docker

Bagaimana anda mengubah jadual di MySQL menggunakan pernyataan Alter Table?

Cara menyelesaikan masalah MySQL tidak dapat membuka perpustakaan bersama

Apa itu SQLite? Gambaran Keseluruhan Komprehensif

Jalankan MySQL di Linux (dengan/tanpa bekas podman dengan phpmyadmin)

Menjalankan Pelbagai Versi MySQL di MacOS: Panduan Langkah demi Langkah

Bagaimanakah saya menjamin MySQL terhadap kelemahan biasa (suntikan SQL, serangan kekerasan)?

Bagaimana saya mengkonfigurasi penyulitan SSL/TLS untuk sambungan MySQL?
