Rumah > pangkalan data > tutorial mysql > Bagaimanakah Saya Boleh Kemas Kini Berbilang Rekod dalam Satu Pertanyaan SQL?

Bagaimanakah Saya Boleh Kemas Kini Berbilang Rekod dalam Satu Pertanyaan SQL?

Mary-Kate Olsen
Lepaskan: 2024-12-08 00:59:11
asal
282 orang telah melayarinya

How Can I Update Multiple Records in a Single SQL Query?

Kemas Kini Berbilang Rekod dalam SQL

Andaikan anda menghadapi senario di mana anda perlu mengemas kini berbilang rekod dalam jadual tertentu. Untuk mencapai ini, anda perlu memanfaatkan sintaks SQL yang sesuai. Dalam contoh ini, kami akan menggunakan jadual konfigurasi, yang mengandungi lajur untuk config_name dan config_value.

Pada mulanya, anda cuba melakukan kemas kini menggunakan pertanyaan berikut:

UPDATE config 
SET t1.config_value = 'value'
  , t2.config_value = 'value2' 
WHERE t1.config_name = 'name1' 
  AND t2.config_name = 'name2';
Salin selepas log masuk

Walau bagaimanapun, pertanyaan ini tidak betul kerana ia cuba mengemas kini rekod yang berbeza menggunakan alias jadual yang sama (t1 dan t2). Untuk menyelesaikan isu ini, anda boleh menggunakan sama ada sintaks kemas kini berbilang jadual atau kaedah kemas kini bersyarat:

Sintaks Kemas Kini Berbilang Jadual:

UPDATE config t1 JOIN config t2
    ON t1.config_name = 'name1' AND t2.config_name = 'name2'
   SET t1.config_value = 'value',
       t2.config_value = 'value2';
Salin selepas log masuk

Pertanyaan ini menyertai jadual konfigurasi dua kali, menggunakan alias t1 dan t2, dan kemudian menggunakan klausa ON untuk menentukan syarat gabungan. Klausa SET kemudiannya memberikan nilai baharu kepada lajur yang sesuai.

Kemas Kini Bersyarat:

UPDATE config
   SET config_value = CASE config_name 
                      WHEN 'name1' THEN 'value' 
                      WHEN 'name2' THEN 'value2' 
                      ELSE config_value
                      END
 WHERE config_name IN('name1', 'name2');
Salin selepas log masuk

Pertanyaan ini menggunakan pernyataan CASE untuk menentukan nilai yang berbeza untuk nama_konfigurasi yang berbeza nilai. Klausa WHERE mengehadkan kemas kini untuk hanya mempengaruhi rekod dengan nama_konfigurasi sama ada 'name1' atau 'name2'.

Kaedah ini menyediakan cara yang berkesan untuk mengemas kini berbilang rekod dalam satu pertanyaan. Dengan menggunakan sintaks yang sesuai, anda boleh mengubah suai data dalam pangkalan data SQL anda dengan cekap.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Kemas Kini Berbilang Rekod dalam Satu Pertanyaan SQL?. 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