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 );
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;
Contoh Keputusan:
select * from myThing; +----+------+---------+---------+------------+ | id | name | values1 | values2 | dates | +----+------+---------+---------+------------+ | 1 | 777 | 1 | 4 | 2015-07-11 | | 2 | 778 | 1 | 1 | 2015-07-11 | +----+------+---------+---------+------------+
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!