Rumah > pangkalan data > tutorial mysql > Bagaimanakah Saya Boleh Sisipkan atau KEMASKINI Baris MySQL Dengan Cekap Berdasarkan Dua Syarat?

Bagaimanakah Saya Boleh Sisipkan atau KEMASKINI Baris MySQL Dengan Cekap Berdasarkan Dua Syarat?

Mary-Kate Olsen
Lepaskan: 2025-01-04 16:43:41
asal
660 orang telah melayarinya

How Can I Efficiently INSERT or UPDATE a MySQL Row Based on Two Conditions?

MASUKKAN KE DALAM atau KEMASKINI dengan Dua Syarat

Penerangan Masalah:

Pengguna menghadapi masalah cabaran yang memakan masa: memasukkan baris baharu ke dalam jadual jika belum ada baris yang sepadan dengan dua syarat tertentu ('nama' dan 'tarikh'), atau mengemas kini baris sedia ada jika padanan ditemui.

Penyelesaian:

Jawapannya terletak pada INSERT INTO MySQL .. . Ciri berkuasa ini membolehkan manipulasi data yang cekap dengan memasukkan baris baharu jika tiada baris sepadan wujud atau mengemas kini baris sedia ada jika kekangan kunci unik dilanggar.

Untuk mencapai gelagat yang diingini, jadual mesti mempunyai kunci unik ditakrifkan (kunci komposit dalam kes ini) untuk dua lajur ('nama' dan 'tarikh'). Kunci ini berfungsi sebagai pengecam bagi baris unik dalam jadual.

Contoh Senario:

Pertimbangkan struktur jadual berikut:

create table myThing (
    id int auto_increment primary key,
    name int not null,
    values1 int not null,
    values2 int not null,
    dates date not null,
    unique key(name,dates) -- This line is crucial
);
Salin selepas log masuk

Memasukkan baris baharu dengan pernyataan berikut sama ada akan mencipta baris baharu atau mengemas kini baris sedia ada, bergantung pada kewujudan baris dengan baris yang sama 'nama' dan 'tarikh':

insert myThing(name,values1,values2,dates) values (777,1,1,'2015-07-11') on duplicate key update values2=values2+1;
Salin selepas log masuk

Contoh Keputusan:

select * from myThing;
+----+------+---------+---------+------------+
| id | name | values1 | values2 | dates      |
+----+------+---------+---------+------------+
| 1 | 777 | 1 | 4 | 2015-07-11 |
| 2 | 778 | 1 | 1 | 2015-07-11 |
+----+------+---------+---------+------------+
Salin selepas log masuk

Seperti yang ditunjukkan oleh contoh, INSERT INTO ... PADA KEMASKINI KUNCI DUA sintaks cekap mengendalikan kedua-dua operasi sisipan dan kemas kini berdasarkan kunci unik yang ditentukan, menghapuskan keperluan untuk penyimpanan kompleks prosedur.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Sisipkan atau KEMASKINI Baris MySQL Dengan Cekap Berdasarkan Dua Syarat?. 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