Mendapatkan Jumlah Hasil menggunakan MySQL Offset dan Had
Penomboran melibatkan mendapatkan semula subset data daripada pangkalan data berdasarkan nilai offset dan had. Walau bagaimanapun, untuk menentukan jumlah halaman, pengetahuan tentang jumlah keputusan diperlukan. Artikel ini mengemukakan soalan pengaturcaraan yang berkaitan dengan kaedah yang cekap untuk mengira jumlah ini.
Soalan:
Dalam PHP/MySQL, pengguna yang melaksanakan penomboran menghadapi keperluan untuk menentukan jumlah bilangan hasil untuk pertanyaan tertentu, walaupun semasa menggunakan parameter ofset dan had. Kebimbangannya ialah melaksanakan pertanyaan kedua tanpa kekangan had untuk mengira baris mungkin terbukti membazir secara pengiraan. Adakah terdapat pendekatan yang lebih mesra sumber?
Jawapan:
Ya, terdapat penyelesaian yang dioptimumkan untuk senario ini. Dengan menggunakan kata kunci SQL_CALC_FOUND_ROWS pada permulaan pertanyaan awal, MySQL akan melakukan kiraan automatik bagi semua baris yang sepadan, tanpa mengira sekatan offset atau had. Ini menghapuskan keperluan untuk pertanyaan kedua.
Berikut ialah cara mengubah suai pertanyaan anda dengan SQL_CALC_FOUND_ROWS:
SELECT SQL_CALC_FOUND_ROWS * FROM table WHERE category_id = ? LIMIT ?, ?
Setelah pertanyaan yang diubah suai ini dilaksanakan, anda boleh melaksanakan pertanyaan berikut untuk mendapatkan jumlah keseluruhan kiraan baris yang sepadan:
SELECT FOUND_ROWS()
Dengan menggunakan SQL_CALC_FOUND_ROWS, anda boleh mendapatkan semula kedua-dua hasil penomboran dan jumlah hasil dengan satu panggilan pangkalan data dengan cekap.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mendapatkan Jumlah Kiraan Hasil dengan Cekap dalam Penomboran MySQL Semasa Menggunakan LIMIT dan OFFSET?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!