Meningkatkan dengan Jadual Kompleks: Mengemas kini Berbilang Lajur
Apabila melakukan operasi upsert dengan berbilang lajur, persoalan timbul sama ada ia cekap menggunakan berbilang pilih pernyataan dalam bahagian kemas kini. Walaupun ia boleh dilaksanakan secara teknikal, pendekatan yang lebih baik tersedia.
Pertimbangkan contoh yang diberikan:
INSERT INTO `item` (`item_name`, items_in_stock) VALUES('A', 27) ON DUPLICATE KEY UPDATE `new_items_count` = 27 + (SELECT items_in_stock where item_name = 'A')
Pertanyaan ini menambahkan kuantiti masuk dengan berkesan kepada nilai sedia ada untuk item yang ditentukan. Walau bagaimanapun, subpilihan tidak diperlukan.
Versi pertanyaan yang diperbetulkan adalah seperti berikut:
INSERT INTO `item` (`item_name`, items_in_stock) VALUES( 'A', 27) ON DUPLICATE KEY UPDATE `new_items_count` = `new_items_count` + 27
Dengan mengabaikan subpilihan, pertanyaan menggunakan keupayaan MySQL untuk merujuk baris yang mencetuskan ON DUPLICATE KEY action. Ini menghapuskan keperluan untuk penyataan pilihan tambahan dan menyelaraskan proses kemas kini.
Ingat bahawa kesederhanaan selalunya merupakan kunci kepada operasi yang cekap. Dengan mempertimbangkan pilihan yang tersedia dengan teliti dan mengelakkan kerumitan yang tidak perlu, anda boleh mengoptimumkan pertanyaan upsert anda untuk prestasi dan kebolehbacaan kod.
Atas ialah kandungan terperinci Adakah Menggunakan Penyata PILIH Berbilang Cekap untuk Menyatakan dengan Jadual Kompleks?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!