Mengira Baris Melebihi LIMIT dalam Pertanyaan MySQL
Masalah:
Apabila melaksanakan pertanyaan MySQL dengan klausa LIMIT, ia boleh mencabar untuk mendapatkan jumlah bilangan baris dalam jadual yang memenuhi syarat pertanyaan. Ini adalah benar terutamanya apabila menggunakan pernyataan JOIN kompleks dan klausa WHERE.
Penyelesaian:
Untuk menangani isu ini, MySQL menyediakan kata kunci SQL_CALC_FOUND_ROWS. Apabila kata kunci ini digunakan, ia mengarahkan MySQL untuk mengira jumlah bilangan baris yang akan diambil tanpa klausa LIMIT.
Contoh:
Pertimbangkan MySQL berikut pertanyaan:
SELECT A.ID, A.NAME, B.ID, B.NAME FROM table1 A JOIN table2 B ON ( A.ID = B.TABLE1_ID ) WHERE cond1, cond2, ..., condN LIMIT 10
Untuk mendapatkan jumlah bilangan baris tanpa klausa LIMIT, laksanakan dua pernyataan berikut dalam susunan yang sama:
SELECT SQL_CALC_FOUND_ROWS A.ID, A.NAME, B.ID, B.NAME FROM table1 A JOIN table2 B ON ( A.ID = B.TABLE1_ID ) WHERE cond1, cond2, ..., condN LIMIT 10 SELECT FOUND_ROWS();
Pernyataan pertama mengira jumlah baris yang memuaskan syarat pertanyaan, manakala pernyataan kedua mendapatkan semula jumlah kiraan daripada fungsi FOUND_ROWS().
Atas ialah kandungan terperinci Bagaimana Mengira Baris Melebihi LIMIT dalam Pertanyaan MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!