MariaDB
 sql >> Teknologi Basis Data >  >> RDS >> MariaDB

MariaDB FOUND_ROWS() Dijelaskan

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 .


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MariaDB JSON_DEPTH() Dijelaskan

  2. Perencanaan Pemulihan Bencana untuk MySQL &MariaDB

  3. Cara Menginstal MariaDB 10 di RHEL 8

  4. Menjelajahi Opsi Mesin Penyimpanan untuk MariaDB

  5. Perbaiki Kesalahan 1064 (42000) saat menggunakan Operator MINUS di MariaDB