Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Mengemas kini Data Secara Bersyarat dengan INSERT ... PADA KEMASKINI KUNCI PENDUA?
Sisipkan Bersyarat ... PADA KEMASKINI KUNCI DUA
Apabila menggunakan INSERT ... PADA KEMASKINI KUNCI DUA, mungkin perlu memohon kemas kini secara bersyarat, hanya apabila syarat tertentu dipenuhi. Walau bagaimanapun, penggunaan WHERE dalam klausa UPDATE tidak disokong.
Penyelesaian dengan IF()
Untuk mengatasi had ini, adalah mungkin untuk menggunakan IF( ) berfungsi untuk menilai keadaan dan menentukan sama ada kemas kini perlu dilakukan. Sintaks berikut menggambarkan penyelesaian ini:
INSERT INTO table_name (column1, column2) VALUES (value1, value2) ON DUPLICATE KEY UPDATE column2 = IF(condition, new_value, old_value);
Contoh:
Pertimbangkan senario berikut:
INSERT INTO daily_events (created_on, last_event_id, last_event_created_at) VALUES ('2010-01-19', 23, '2010-01-19 10:23:11') ON DUPLICATE KEY UPDATE last_event_id = IF(last_event_created_at < VALUES(last_event_created_at), VALUES(last_event_id), last_event_id);
Dalam contoh ini, kemas kini to last_event_id hanya akan berlaku jika nilai last_event_created_at dalam baris masuk lebih lewat daripada nilai sedia ada dalam pangkalan data. Ini memastikan acara terbaharu direkodkan.
Atas ialah kandungan terperinci Bagaimana untuk Mengemas kini Data Secara Bersyarat dengan INSERT ... PADA KEMASKINI KUNCI PENDUA?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!