Di MariaDB, Anda dapat menggunakan LIMIT
klausa untuk mengurangi jumlah baris yang dikembalikan oleh kueri. FOUND_ROWS()
fungsi dapat digunakan dalam kueri tersebut untuk mengembalikan jumlah baris yang akan dikembalikan, jika LIMIT
klausa tidak disertakan.
Ini bisa berguna, karena memungkinkan Anda mendapatkan informasi ini tanpa harus menjalankan kueri lagi.
FOUND_ROWS()
function juga dapat digunakan untuk mengembalikan jumlah baris yang sebenarnya dikembalikan oleh pernyataan terbatas, jika itu yang Anda butuhkan.
Sintaks
Sintaksnya seperti ini:
FOUND_ROWS()
Tidak ada argumen yang diperlukan atau diterima.
Untuk mendapatkan jumlah baris yang dikembalikan oleh pernyataan, sertakan SQL_CALC_FOUND_ROWS
dalam pernyataan, lalu jalankan FOUND_ROWS()
dalam kueri terpisah (setelah Anda menjalankan kueri awal).
Contoh
Berikut ini contoh untuk mendemonstrasikan cara kerja fungsi.
Misalkan kita membuat tabel seperti ini:
SELECT SQL_CALC_FOUND_ROWS *
FROM Pets
LIMIT 2;
Hasil:
+-------+-----------+---------+---------+------------+ | PetId | PetTypeId | OwnerId | PetName | DOB | +-------+-----------+---------+---------+------------+ | 1 | 2 | 3 | Fluffy | 2020-11-20 | | 2 | 3 | 3 | Fetch | 2019-08-16 | +-------+-----------+---------+---------+------------+
Hanya dua baris yang dikembalikan, seperti yang ditentukan oleh LIMIT
klausa.
Namun, sekarang mari kita gunakan FOUND_ROWS()
untuk melihat berapa banyak baris yang akan dikembalikan jika kita tidak menggunakan LIMIT
klausa:
SELECT FOUND_ROWS();
Hasil:
+--------------+ | FOUND_ROWS() | +--------------+ | 8 | +--------------+
Ini memberitahu kita bahwa delapan baris akan dikembalikan jika kita tidak menggunakan LIMIT
klausa.
Kami dapat memverifikasi ini dengan menjalankan kueri tanpa LIMIT
klausa:
SELECT *
FROM Pets;
Hasil:
+-------+-----------+---------+---------+------------+ | PetId | PetTypeId | OwnerId | PetName | DOB | +-------+-----------+---------+---------+------------+ | 1 | 2 | 3 | Fluffy | 2020-11-20 | | 2 | 3 | 3 | Fetch | 2019-08-16 | | 3 | 2 | 2 | Scratch | 2018-10-01 | | 4 | 3 | 3 | Wag | 2020-03-15 | | 5 | 1 | 1 | Tweet | 2020-11-28 | | 6 | 3 | 4 | Fluffy | 2020-09-17 | | 7 | 3 | 2 | Bark | NULL | | 8 | 2 | 4 | Meow | NULL | +-------+-----------+---------+---------+------------+
Saya juga menghapus SQL_CALC_FOUND_ROWS
dari pernyataan tersebut, karena kami tidak membutuhkannya kali ini.
Menghilangkan SQL_CALC_FOUND_ROWS
Opsi
Jika Anda menghilangkan SQL_CALC_FOUND_ROWS
opsi, FOUND_ROWS()
fungsi mengembalikan aktual jumlah baris yang dikembalikan. Dengan kata lain, ini mengembalikan jumlah baris yang dikembalikan setelah LIMIT
klausa telah diterapkan.
Berikut contoh yang sama tanpa SQL_CALC_FOUND_ROWS
pilihan:
SELECT *
FROM Pets
LIMIT 2;
Hasil:
+-------+-----------+---------+---------+------------+ | PetId | PetTypeId | OwnerId | PetName | DOB | +-------+-----------+---------+---------+------------+ | 1 | 2 | 3 | Fluffy | 2020-11-20 | | 2 | 3 | 3 | Fetch | 2019-08-16 | +-------+-----------+---------+---------+------------+
Sekarang jalankan FOUND_ROWS()
:
SELECT FOUND_ROWS();
Hasil:
+--------------+ | FOUND_ROWS() | +--------------+ | 2 | +--------------+
Kali ini FOUND_ROWS()
mengembalikan 2
bukannya 8
.
Kueri Tanpa LIMIT
Klausa
Konsep yang sama dapat diterapkan pada kueri tanpa LIMIT
klausa.
Contoh:
SELECT *
FROM Pets;
Hasil:
+-------+-----------+---------+---------+------------+ | PetId | PetTypeId | OwnerId | PetName | DOB | +-------+-----------+---------+---------+------------+ | 1 | 2 | 3 | Fluffy | 2020-11-20 | | 2 | 3 | 3 | Fetch | 2019-08-16 | | 3 | 2 | 2 | Scratch | 2018-10-01 | | 4 | 3 | 3 | Wag | 2020-03-15 | | 5 | 1 | 1 | Tweet | 2020-11-28 | | 6 | 3 | 4 | Fluffy | 2020-09-17 | | 7 | 3 | 2 | Bark | NULL | | 8 | 2 | 4 | Meow | NULL | +-------+-----------+---------+---------+------------+
Sekarang jalankan FOUND_ROWS()
:
SELECT FOUND_ROWS();
Hasil:
+--------------+ | FOUND_ROWS() | +--------------+ | 8 | +--------------+
Pernyataan Lainnya
FOUND_ROWS()
fungsi juga dapat digunakan pada beberapa pernyataan lain, seperti SHOW
, DESCRIBE
, dan HELP
.