Dalam MySQL, melaksanakan berbilang pertanyaan boleh memakan masa. Untuk mengoptimumkan prestasi, menggabungkan pertanyaan menjadi satu adalah wajar. Ini ialah inti dari pertanyaan yang dikemukakan oleh Quan: bolehkah dua pertanyaan digabungkan untuk mengembalikan baris yang dikemas kini?
Pertanyaan pertama memilih baris daripada jadual berdasarkan kriteria tertentu, manakala baris kemas kini kedua memenuhi kriteria yang sama. Menggabungkan pertanyaan ini memerlukan teknik yang membolehkan kedua-dua membaca dan menulis dalam satu operasi.
Satu pendekatan ialah menggunakan subkueri. Walau bagaimanapun, Quan menghadapi batasan dengan kaedah ini. Penyelesaian alternatif muncul dalam pengesyoran daripada https://gist.github.com/PieterScheffers/189cad9510d304118c33135965e9cddb:
SET @uids := null; UPDATE footable SET foo = 'bar' WHERE fooid > 5 AND ( SELECT @uids := CONCAT_WS(',', fooid, @uids) ); SELECT @uids;
Pertanyaan ini memanfaatkan langkah berikut:
Atas ialah kandungan terperinci Bagaimana untuk Mencapai Kemas Kini Baris dan Pengambilan Dalam Satu Pertanyaan MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!