Rumah >pangkalan data >tutorial mysql >Bagaimana Menggunakan MySQL ON DUPLICATE KEY UPDATE untuk Berbilang Baris?

Bagaimana Menggunakan MySQL ON DUPLICATE KEY UPDATE untuk Berbilang Baris?

Linda Hamilton
Linda Hamiltonasal
2025-01-11 08:14:42514semak imbas

How to Use MySQL's ON DUPLICATE KEY UPDATE for Multiple Rows?

Mengendalikan Berbilang Baris dengan Cekap dengan MySQL ON DUPLICATE KEY UPDATE

MySQL menawarkan pendekatan yang diperkemas untuk mengurus sisipan berbilang baris sambil menyemak dan mengemas kini nilai unik sedia ada pada masa yang sama. Ini dicapai menggunakan klausa ON DUPLICATE KEY UPDATE. Ciri ini membenarkan kemas kini bersyarat atau sisipan medan tertentu dalam satu pertanyaan.

Untuk mengemas kini baris sedia ada dan menambah baris baharu secara terpilih, manfaatkan alias atau kata kunci VALUES bersama dengan ON DUPLICATE KEY UPDATE.

MySQL 8.0.19 dan lebih baru (Menggunakan Alias):

<code class="language-sql">INSERT INTO beautiful (name, age)
    VALUES
    ('Helen', 24),
    ('Katrina', 21),
    ('Samia', 22),
    ('Hui Ling', 25),
    ('Yumie', 29)
    AS new
ON DUPLICATE KEY UPDATE
    age = new.age</code>

MySQL 8.0.19 dan lebih awal (Menggunakan Kata Kunci NILAI):

<code class="language-sql">INSERT INTO beautiful (name, age)
    VALUES
    ('Helen', 24),
    ('Katrina', 21),
    ('Samia', 22),
    ('Hui Ling', 25),
    ('Yumie', 29)
ON DUPLICATE KEY UPDATE
    age = VALUES(age)</code>

Contoh ini menunjukkan cara mengemas kini atau memasukkan data berdasarkan kunci unik sedia ada. Jika kunci unik sudah wujud, medan yang ditentukan dikemas kini; jika tidak, baris baharu dimasukkan. Kata kunci VALUES atau alias new merujuk kepada nilai yang disisipkan dalam pernyataan INSERT.

Atas ialah kandungan terperinci Bagaimana Menggunakan MySQL ON DUPLICATE KEY UPDATE untuk Berbilang Baris?. 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