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

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

मारियाडीबी में, ROW_COUNT() एक अंतर्निहित फ़ंक्शन है जो पिछले कथन द्वारा अद्यतन, सम्मिलित या हटाई गई पंक्तियों की संख्या देता है।

ROW_COUNT() . द्वारा लौटाया गया मान पंक्ति गणना के समान है कि mysql क्लाइंट प्रदर्शित करता है और मान mysql_affected_rows() . से सी एपीआई समारोह।

सिंटैक्स

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

ROW_COUNT()

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

उदाहरण

डीडीएल स्टेटमेंट

DDL स्टेटमेंट के लिए (TRUNCATE . सहित) ) और अन्य कथनों के लिए जो कोई परिणाम सेट नहीं लौटाते (जैसे USE , DO , SIGNAL या DEALLOCATE PREPARE ), ROW_COUNT() फ़ंक्शन रिटर्न 0

आइए एक टेबल बनाएं:

CREATE OR REPLACE TABLE guest (
  guest_id INT NOT NULL AUTO_INCREMENT,
  guest_name VARCHAR(255) NOT NULL,
  PRIMARY KEY (guest_id)
);

परिणाम:

Query OK, 0 rows affected (0.046 sec)

और ROW_COUNT()चलाएं :

SELECT ROW_COUNT();

परिणाम:

+-------------+
| ROW_COUNT() |
+-------------+
|           0 |
+-------------+

जैसी उम्मीद थी, 0 लौटा दिया जाता है, क्योंकि शून्य पंक्तियाँ प्रभावित हुईं।

डीएमएल स्टेटमेंट

SELECT . के अलावा DML स्टेटमेंट के लिए और ALTER TABLE . के लिए , ROW_COUNT() फ़ंक्शन प्रभावित पंक्तियों की संख्या लौटाता है।

नीचे कुछ उदाहरण दिए गए हैं।

डेटा डालें

अब कुछ पंक्तियाँ सम्मिलित करें:

INSERT INTO guest (guest_name) VALUES ('Homer');
INSERT INTO guest (guest_name) VALUES ('Bart');
INSERT INTO guest (guest_name) VALUES ('Marge');

परिणाम:

MariaDB [Zap]> INSERT INTO guest (guest_name) VALUES ('Homer');
Query OK, 1 row affected (0.037 sec)

MariaDB [Zap]> INSERT INTO guest (guest_name) VALUES ('Bart');
Query OK, 1 row affected (0.001 sec)

MariaDB [Zap]> INSERT INTO guest (guest_name) VALUES ('Marge');
Query OK, 1 row affected (0.002 sec)

प्रत्येक कथन के परिणामस्वरूप एक पंक्ति प्रभावित हुई।

और चलिये ROW_COUNT() फिर से:

SELECT ROW_COUNT();

परिणाम:

+-------------+
| ROW_COUNT() |
+-------------+
|           1 |
+-------------+

यह देता है 1 क्योंकि पिछले कथन में कितनी पंक्तियाँ प्रभावित हुई थीं। भले ही हमने तीन पंक्तियों को प्रभावित किया हो, ऐसा करने के लिए तीन कथनों की आवश्यकता होती है (प्रत्येक कथन में केवल एक पंक्ति सम्मिलित होती है, और ROW_COUNT() केवल अंतिम बयान पर रिपोर्ट)।

डेटा अपडेट करें

अब डेटा को तीनों पंक्तियों में अपडेट करते हैं:

UPDATE guest
SET guest_name = 'Homer';

परिणाम:

Query OK, 2 rows affected (0.008 sec)
Rows matched: 3  Changed: 2  Warnings: 0

मेरा mariadb क्लाइंट मुझे बताता है कि हालांकि तीन पंक्तियाँ मानदंड से मेल खाती हैं, केवल दो पंक्तियों को बदल दिया गया है। ऐसा इसलिए है क्योंकि पहली पंक्ति में पहले से ही Homer है , जिसे हम इसे अपडेट करने का भी प्रयास कर रहे हैं।

आइए देखें क्या ROW_COUNT() रिटर्न:

SELECT ROW_COUNT();

परिणाम:

+-------------+
| ROW_COUNT() |
+-------------+
|           2 |
+-------------+

जैसा अपेक्षित था, यह 2 returns लौटाता है , क्योंकि वास्तव में कितनी पंक्तियों को अपडेट किया गया था।

परिणाम सेट विवरण

उन बयानों के लिए जो परिणाम सेट लौटाते हैं (जैसे SELECT , SHOW , DESC या HELP ), ROW_COUNT() फ़ंक्शन रिटर्न -1 , भले ही परिणाम सेट खाली हो। यह प्रशासनिक वक्तव्यों के लिए भी सही है, जैसे कि OPTIMIZE

उदाहरण:

SELECT * FROM guest;

परिणाम:

+----------+------------+
| guest_id | guest_name |
+----------+------------+
|        1 | Homer      |
|        2 | Homer      |
|        3 | Homer      |
+----------+------------+
3 rows in set (0.000 sec)

अब ROW_COUNT() पर कॉल करें फिर से:

SELECT ROW_COUNT();

परिणाम:

+-------------+
| ROW_COUNT() |
+-------------+
|          -1 |
+-------------+

विदेशी कुंजी और ट्रिगर

ध्यान दें कि ROW_COUNT() उन पंक्तियों को ध्यान में नहीं रखता है, जिन्हें सीधे अंतिम विवरण द्वारा हटाया/अपडेट नहीं किया गया है। इसका अर्थ है कि विदेशी कुंजियों या ट्रिगर द्वारा हटाई गई पंक्तियों की गणना नहीं की जाती है।

अधिक जानकारी

अधिक विवरण और इस फ़ंक्शन का उपयोग करते समय ध्यान रखने योग्य कुछ अन्य बातों के लिए MariaDB दस्तावेज़ देखें।


  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. हाइब्रिड क्लाउड एनवायरनमेंट पर मारियाडीबी परिनियोजन के लिए सुरक्षा संबंधी विचार

  3. मारियाडीबी में उपलब्ध मिलान प्राप्त करने के 3 तरीके

  4. WHMCS डेटाबेस को मारियाडीबी गैलेरा क्लस्टर में कैसे माइग्रेट करें

  5. मारियाडीबी एक JSON_TABLE () फ़ंक्शन पेश करता है