Rumah >pembangunan bahagian belakang >tutorial php >Bagaimanakah Saya Boleh Mengira Jumlah Keputusan dengan Cekap dalam Pertanyaan MySQL dengan Offset dan Had?
Cara Menentukan Jumlah Hasil dengan Offset dan Had dalam Pertanyaan MySQL
Dalam senario penomboran menggunakan Codeigniter atau rangka kerja PHP/MySQL yang serupa, ia menjadi penting untuk menentukan jumlah bilangan hasil dalam jadual untuk mengira jumlah halaman. Walaupun kaedah standard menjalankan pertanyaan kedua tanpa fungsi had kelihatan tidak cekap secara pengiraan, terdapat penyelesaian alternatif yang mengoptimumkan proses ini.
Menggunakan SQL_CALC_FOUND_ROWS
MySQL menyediakan khas fungsi yang dikenali sebagai SQL_CALC_FOUND_ROWS. Dengan memasukkan pernyataan ini sebelum pertanyaan dengan klausa had dan offset, pangkalan data memastikan bahawa jumlah bilangan baris yang akan dikembalikan tanpa had disimpan dalam pembolehubah dalaman khas. Ini membolehkan untuk mendapatkan semula jumlah kiraan dengan cekap tanpa memerlukan pertanyaan tambahan.
Sebagai contoh, pertanyaan berikut termasuk SQL_CALC_FOUND_ROWS:
SELECT * FROM my_table WHERE category_id = ? ORDER BY id LIMIT 10 OFFSET 20
Untuk mendapatkan semula jumlah kiraan, hanya laksanakan pertanyaan berikut:
SELECT FOUND_ROWS()
Ini akan mengembalikan jumlah bilangan baris dalam jadual yang memenuhi klausa where, tanpa mengira parameter ofset atau had. Dengan membahagikan nilai ini dengan nilai had, anda boleh memperoleh jumlah bilangan halaman yang diperlukan untuk penomboran.
Dengan menggunakan SQL_CALC_FOUND_ROWS, penomboran menjadi lebih cekap dengan menghapuskan keperluan untuk berbilang panggilan pangkalan data dan memastikan pengiraan yang tepat untuk jumlah bilangan muka surat.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengira Jumlah Keputusan dengan Cekap dalam Pertanyaan MySQL dengan Offset dan Had?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!