Rumah >pembangunan bahagian belakang >tutorial php >Bagaimanakah Saya Boleh Cari Jumlah Kiraan Keputusan dalam Penomboran MySQL dengan Offset dan Had?

Bagaimanakah Saya Boleh Cari Jumlah Kiraan Keputusan dalam Penomboran MySQL dengan Offset dan Had?

Patricia Arquette
Patricia Arquetteasal
2024-10-23 10:33:02447semak imbas

How Can I Find the Total Count of Results in MySQL Pagination with Offset and Limit?

Mencari Jumlah Hasil dengan Offset dan Had dalam MySQL

Penomboran membenarkan pengguna menyemak imbas set data yang besar dalam bahagian yang boleh diurus. Walau bagaimanapun, untuk menentukan jumlah halaman memerlukan mengetahui jumlah hasil. Apabila menggunakan offset dan had untuk penomboran, nampaknya tidak cekap untuk menjalankan pertanyaan yang sama dua kali, sekali dengan had dan sekali tanpa.

SQL_CALC_FOUND_ROWS: Penyelesaian

Untuk menangani isu ini, MySQL menyediakan kata kunci khas: SQL_CALC_FOUND_ROWS. Dengan menambahkan kata kunci ini pada permulaan pertanyaan anda, MySQL akan mengira dan menyimpan jumlah bilangan baris yang akan dikembalikan tanpa klausa LIMIT.

Contoh Pertanyaan:

<code class="sql">SELECT SQL_CALC_FOUND_ROWS * 
FROM table_name 
WHERE category_id = '1' 
ORDER BY date_created DESC
LIMIT 10 OFFSET 20;</code>

Mendapatkan Jumlah Bilangan Keputusan:

Selepas melaksanakan pertanyaan di atas, anda boleh menggunakan kod PHP berikut untuk mendapatkan jumlah bilangan hasil:

<code class="php">$totalRows = $db->query('SELECT FOUND_ROWS() AS total')->row()->total;</code>

Faedah SQL_CALC_FOUND_ROWS:

  • Peningkatan kecekapan: Menghapuskan keperluan untuk menjalankan pertanyaan dua kali.
  • Ketepatan : Menjamin jumlah kiraan adalah betul, walaupun data asas berubah antara pertanyaan.
  • Kesederhanaan: Mudah dilaksanakan dengan satu kata kunci.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Cari Jumlah Kiraan Keputusan dalam Penomboran MySQL dengan Offset dan Had?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn