MySQL: Pertanyaan untuk Mengemas Kini Rekod Menggunakan Had
Apabila bekerja dengan MySQL, anda mungkin menghadapi senario di mana anda perlu mengemas kini sesuatu julat baris dalam jadual. Artikel ini menjawab persoalan sama ada boleh menggunakan klausa LIMIT dalam pertanyaan KEMASKINI dan menyediakan panduan tentang cara untuk mencapainya.
Ralat Sintaks dan Penggunaan Yang Betul
Pertanyaan awal anda cuba mengemas kini baris bermula dari 1001 dan 1000 rekod seterusnya. Namun, sintaks yang digunakan tidak betul. Dalam MySQL, klausa LIMIT digunakan untuk menyekat bilangan baris yang dipilih, bukan baris yang dikemas kini. Cara yang betul untuk mengemas kini julat baris tertentu adalah melalui subkueri.
Sebagai contoh, untuk mengemas kini 1000 baris pertama dengan p_id ditetapkan kepada 3, anda akan menggunakan yang berikut:
UPDATE `oltp_db`.`users` SET p_id = 3 WHERE id IN ( SELECT id FROM ( SELECT id FROM `oltp_db`.`users` ORDER BY id ASC LIMIT 0, 1000 ) tmp )
Mengendalikan Nilai NULL
Dalam pertanyaan kedua anda, anda cuba mengemas kini baris dengan p_id ditetapkan kepada NULL. Walau bagaimanapun, pertanyaan akan gagal kerana nilai NULL tidak boleh dibandingkan dengan nilai bukan NULL dalam semakan kesamaan. Untuk mengemas kini baris dengan nilai NULL p_id, anda boleh menggunakan fungsi IS NULL dan COALESCE():
UPDATE `oltp_db`.`users` SET p_id = COALESCE(3, p_id) WHERE p_id IS NULL
Dengan mengikut garis panduan ini, anda boleh mengemas kini baris tertentu dalam jadual MySQL anda dengan berkesan, walaupun semasa berurusan dengan NULL nilai.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengemas kini Julat Baris Tertentu dalam MySQL Menggunakan Klausa LIMIT?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!