Had Dinamik dalam MySQL: Menggunakan Pembolehubah dalam Klausa LIMIT
Dalam MySQL, menggunakan pembolehubah dalam klausa LIMIT memberikan cabaran. Secara lalai, MySQL tidak membenarkan parameter dalam klausa ini. Had ini boleh dihadapi apabila cuba mengawal bilangan baris secara dinamik yang dikembalikan oleh pernyataan SELECT.
Satu penyelesaian melibatkan mencipta prosedur tersimpan yang menerima parameter input. Dalam prosedur tersimpan, parameter boleh digunakan dalam klausa LIMIT untuk mencapai kefungsian yang diingini.
CREATE PROCEDURE my_procedure(IN my_size INT) BEGIN SELECT * FROM some_table LIMIT my_size; END;
Walau bagaimanapun, jika prosedur tersimpan bukan pilihan, pendekatan alternatif wujud. Satu kaedah melibatkan penggunaan subpilihan dengan klausa ROWNUM dan keadaan WHERE berdasarkan nombor baris yang diingini:
SET @limit = 10; SELECT * FROM ( SELECT instances.*, @rownum := @rownum + 1 AS rank FROM instances, (SELECT @rownum := 0) r ) d WHERE rank < @limit;
Dengan menggunakan teknik ini, anda boleh menggunakan pembolehubah untuk mengawal secara dinamik bilangan baris yang dikembalikan oleh SELECT pernyataan dalam MySQL, walaupun tanpa menggunakan prosedur tersimpan.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Kawal Secara Dinamik Bilangan Baris yang Dikembalikan oleh Pernyataan SELECT MySQL Menggunakan Pembolehubah?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!