Rumah > pangkalan data > tutorial mysql > Bolehkah MySQL Kemas Kini Berbilang Baris dalam Satu Pertanyaan?

Bolehkah MySQL Kemas Kini Berbilang Baris dalam Satu Pertanyaan?

DDD
Lepaskan: 2025-01-21 20:21:10
asal
452 orang telah melayarinya

Can MySQL Update Multiple Rows in a Single Query?

Kemas kini baris kumpulan MySQL

Penyataan

MySQL INSERT membenarkan berbilang baris data dimasukkan secara serentak. Tetapi, bolehkah saya mengemas kini berbilang baris dengan satu pertanyaan?

Pertanyaan kemas kini kelompok

Ya, anda boleh menggunakan pernyataan INSERT ... ON DUPLICATE KEY UPDATE untuk mengemas kini berbilang baris sekaligus. Apabila satu baris dimasukkan ke dalam jadual dan kunci utama atau unik sudah wujud, perkara berikut berlaku:

  • Jika pernyataan INSERT mengandungi klausa DUPLICATE KEY UPDATE, maka baris sedia ada dikemas kini menggunakan nilai yang disediakan dalam klausa kemas kini.
  • Jika pernyataan INSERT tidak mengandungi klausa DUPLICATE KEY UPDATE, ralat akan dihasilkan.

Contoh

Pertimbangkan borang berikut:

Name id Col1 Col2
Row1 1 6 1
Row2 2 2 3
Row3 3 9 5
Row4 4 16 8

Kami ingin menggabungkan kemas kini berikut menjadi satu pertanyaan:

<code class="language-sql">UPDATE table SET Col1 = 1 WHERE id = 1;
UPDATE table SET Col1 = 2 WHERE id = 2;
UPDATE table SET Col2 = 3 WHERE id = 3;
UPDATE table SET Col1 = 10 WHERE id = 4;
UPDATE table SET Col2 = 12 WHERE id = 4;</code>
Salin selepas log masuk

Pertanyaan kemas kini kelompok yang sepadan menggunakan INSERT ... ON DUPLICATE KEY UPDATE adalah seperti berikut:

<code class="language-sql">INSERT INTO table (id,Col1,Col2) VALUES (1,1,1),(2,2,3),(3,9,3),(4,10,12)
ON DUPLICATE KEY UPDATE Col1=VALUES(Col1),Col2=VALUES(Col2);</code>
Salin selepas log masuk

Pertanyaan ini memasukkan baris baharu jika ia belum wujud atau mengemas kini baris sedia ada jika kunci utama sudah wujud dalam jadual.

Atas ialah kandungan terperinci Bolehkah MySQL Kemas Kini Berbilang Baris dalam Satu Pertanyaan?. 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan