Rumah >pangkalan data >tutorial mysql >Bagaimanakah Anda Mendapatkan Jumlah Kiraan Baris Apabila Menggunakan `LIMIT` dalam Pertanyaan MySQL?

Bagaimanakah Anda Mendapatkan Jumlah Kiraan Baris Apabila Menggunakan `LIMIT` dalam Pertanyaan MySQL?

DDD
DDDasal
2024-11-13 05:50:02698semak imbas

How Do You Get the Total Row Count When Using `LIMIT` in MySQL Queries?

Mencari Kiraan Baris Walaupun LIMIT dalam Pertanyaan MySQL

Pertanyaan MySQL dengan klausa LIMIT membolehkan anda mengehadkan bilangan baris yang dikembalikan. Tetapi bagaimana jika anda juga perlu mendapatkan jumlah bilangan baris yang sepadan dengan pertanyaan?

Pertanyaan dengan LIMIT Klausa dan Kiraan Baris

Pertimbangkan pertanyaan berikut yang mendapatkan semula subset baris daripada dua jadual menggunakan JOIN:

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

Pertanyaan ini akan mengembalikan yang pertama 10 baris yang memenuhi syarat yang ditetapkan.

Penyelesaian Menggunakan SQL_CALC_FOUND_ROWS

Untuk mendapatkan jumlah bilangan baris, anda boleh menggunakan fungsi SQL_CALC_FOUND_ROWS bersama-sama dengan klausa LIMIT:

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();

Fungsi SQL_CALC_FOUND_ROWS menetapkan kiraan baris dalaman pembolehubah sebelum melaksanakan pertanyaan dengan klausa LIMIT. Fungsi FOUND_ROWS() kemudian mendapatkan semula nilai pembolehubah ini, mewakili jumlah bilangan baris yang akan dikembalikan tanpa LIMIT.

Dengan menggunakan teknik ini, anda boleh mendapatkan kedua-dua subset terhad baris dan jumlah kiraan baris tanpa memerlukan pertanyaan tambahan.

Atas ialah kandungan terperinci Bagaimanakah Anda Mendapatkan Jumlah Kiraan Baris Apabila Menggunakan `LIMIT` dalam Pertanyaan MySQL?. 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