MariaDB
 sql >> डेटाबेस >  >> RDS >> MariaDB

मारियाडीबी FOUND_ROWS () समझाया गया

MariaDB में, आप LIMIT . का उपयोग कर सकते हैं एक क्वेरी द्वारा लौटाई गई पंक्तियों की संख्या को कम करने के लिए क्लॉज। FOUND_ROWS() इस तरह के प्रश्नों में फ़ंक्शन का उपयोग उन पंक्तियों की संख्या को वापस करने के लिए किया जा सकता है जो लौटाई गई होतीं, यदि LIMIT होती खंड शामिल नहीं किया गया।

यह आसान हो सकता है, क्योंकि यह आपको क्वेरी को फिर से चलाए बिना यह जानकारी प्राप्त करने की अनुमति देता है।

FOUND_ROWS() फ़ंक्शन का उपयोग उन पंक्तियों की संख्या को वापस करने के लिए भी किया जा सकता है जो वास्तव में सीमित कथन द्वारा लौटाई गई थीं, यदि आपको इसकी आवश्यकता है।

सिंटैक्स

वाक्य रचना इस प्रकार है:

FOUND_ROWS()

किसी तर्क की आवश्यकता नहीं है या स्वीकार नहीं है।

किसी कथन द्वारा लौटाई गई पंक्तियों की संख्या प्राप्त करने के लिए, SQL_CALC_FOUND_ROWS शामिल करें कथन में, और फिर FOUND_ROWS() चलाएं एक अलग क्वेरी में (प्रारंभिक क्वेरी चलाने के बाद)।

उदाहरण

फ़ंक्शन कैसे काम करता है, यह दिखाने के लिए यहां एक उदाहरण दिया गया है।

मान लीजिए हम इस तरह एक टेबल बनाते हैं:

SELECT SQL_CALC_FOUND_ROWS * 
FROM Pets 
LIMIT 2;

परिणाम:

+-------+-----------+---------+---------+------------+
| PetId | PetTypeId | OwnerId | PetName | DOB        |
+-------+-----------+---------+---------+------------+
|     1 |         2 |       3 | Fluffy  | 2020-11-20 |
|     2 |         3 |       3 | Fetch   | 2019-08-16 |
+-------+-----------+---------+---------+------------+

केवल दो पंक्तियों को लौटाया गया, जैसा कि LIMIT . द्वारा निर्दिष्ट किया गया है खंड।

हालांकि, आइए अब FOUND_ROWS() का उपयोग करें यह देखने के लिए कि यदि हमने LIMIT . का उपयोग नहीं किया होता तो कितनी पंक्तियाँ लौटा दी जातीं खंड:

SELECT FOUND_ROWS();

परिणाम:

+--------------+
| FOUND_ROWS() |
+--------------+
|            8 |
+--------------+

यह हमें बताता है कि अगर हमने LIMIT . का उपयोग नहीं किया होता तो आठ पंक्तियाँ वापस आ जातीं खंड।

हम LIMIT . के बिना क्वेरी चलाकर इसे सत्यापित कर सकते हैं खंड:

SELECT * 
FROM Pets;

परिणाम:

+-------+-----------+---------+---------+------------+
| 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       |
+-------+-----------+---------+---------+------------+

मैंने SQL_CALC_FOUND_ROWS . भी हटा दिया है बयान से, क्योंकि हमें इस बार इसकी आवश्यकता नहीं थी।

SQL_CALC_FOUND_ROWS को छोड़ना विकल्प

अगर आप SQL_CALC_FOUND_ROWS को छोड़ देते हैं विकल्प, FOUND_ROWS() फ़ंक्शन वास्तविक लौटाता है पंक्तियों की संख्या वापस आ गई। दूसरे शब्दों में, यह LIMIT . के बाद दी गई पंक्तियों की संख्या लौटाता है खंड लागू किया गया है।

यहां SQL_CALC_FOUND_ROWS के बिना एक ही उदाहरण दिया गया है विकल्प:

SELECT * 
FROM Pets 
LIMIT 2;

परिणाम:

+-------+-----------+---------+---------+------------+
| PetId | PetTypeId | OwnerId | PetName | DOB        |
+-------+-----------+---------+---------+------------+
|     1 |         2 |       3 | Fluffy  | 2020-11-20 |
|     2 |         3 |       3 | Fetch   | 2019-08-16 |
+-------+-----------+---------+---------+------------+

अब FOUND_ROWS() चलाएं :

SELECT FOUND_ROWS();

परिणाम:

+--------------+
| FOUND_ROWS() |
+--------------+
|            2 |
+--------------+

इस बार FOUND_ROWS() लौटा 2 8 . के बजाय ।

बिना किसी LIMIT के प्रश्न खंड

एक ही अवधारणा को LIMIT के बिना प्रश्नों पर लागू किया जा सकता है खंड।

उदाहरण:

SELECT * 
FROM Pets;

परिणाम:

+-------+-----------+---------+---------+------------+
| 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       |
+-------+-----------+---------+---------+------------+

अब FOUND_ROWS() चलाएं :

SELECT FOUND_ROWS();

परिणाम:

+--------------+
| FOUND_ROWS() |
+--------------+
|            8 |
+--------------+

अन्य कथन

FOUND_ROWS() फ़ंक्शन का उपयोग कुछ अन्य कथनों पर भी किया जा सकता है, जैसे SHOW , DESCRIBE , और 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. मारियाडीबी राउंड () बनाम ट्रंकेट ()

  2. मारियाडीबी में डुप्लिकेट पंक्तियों को हटाने के 2 तरीके (प्राथमिक कुंजी को अनदेखा करता है)

  3. मारियाडीबी में DATE_ADD () कैसे काम करता है

  4. मारियाडीबी में MAKE_SET () कैसे काम करता है

  5. Maxscale से ProxySQL लोड बैलेंसर में माइग्रेट करना