Saya ingin menangkap baris X, jadi, saya atur LIMIT X
; tetapi bagaimana saya bisa secara bersamaan menghitung jumlah total baris juga?
Saat ini, saya menggunakan dua permintaan terpisah untuk melakukannya
SELECT COUNT(*) FROM col WHERE CLAUSE
SELECT * FROM col WHERE CLAUSE LIMIT X
Apakah ada cara untuk melakukan ini dalam satu permintaan?
EDIT: Outputnya harus col
sel dan jumlah baris. Bahkan, setelah memilih col
sel, ia harus berjalan di atas meja untuk menghitung saja.
Saya tahu bahwa tidak mungkin untuk menggabungkan kedua pertanyaan ini, sebagai baris pertama yang dikembalikan 1, tetapi baris X kedua. Saya ingin tahu apakah ada fungsi di mysql untuk mengembalikan jumlah baris di hadapan LIMIT
.
Jawaban:
Kedengarannya Anda ingin menjalankan LIMIT, tetapi masih tahu berapa banyak baris yang akan dikembalikan tanpa LIMIT. Lihat BARIS DITEMUKAN
sumber
FOUND ROWS
, dan saat masih mengeksekusi dua kueri, ini mungkin kinerja yang lebih baik daripada menjalankan kueri COUNT (*) kedua (tergantung pada kueri dan dataset).mysql
tidak akan meninggalkan kita sendirian dalam masalah yang sangat penting;)Gunakan
SQL_CALC_FOUND_ROWS
dalam kueri SELECT Anda dan kemudian jalankanSELECT FOUND_ROWS()
:sumber
Saya tahu ini adalah yang lama tetapi tidak berlaku lagi, dengan MySQL> = 8.0.17 cf Fungsi MySQL Found_Rows () Jadi kita masih harus mengeluarkan kedua query yaitu. tambahkan satu dengan
COUNT()
, sayangnya.sumber