Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MySQL

MySQL कमांड लाइन में DELETE से प्रभावित पंक्तियों की संख्या कैसे पता करें - ROW_COUNT()

समाधान: ROW_COUNT() फ़ंक्शन

अंतिम स्टेटमेंट द्वारा प्रभावित पंक्तियों की संख्या जानने के लिए ROW_COUNT() फ़ंक्शन का उपयोग करें।

सिंटैक्स

DELETE FROM yourTableName WHERE condition;
SELECT ROW_COUNT();

व्यावहारिक उदाहरण

टेबल बनाना और डेटा डालना

mysql> CREATE TABLE rowAffectedByDeleteDemo (
    -> CustomerId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    -> CustomerName VARCHAR(20)
    -> );

mysql> INSERT INTO rowAffectedByDeleteDemo(CustomerName) VALUES
    -> ('John'), ('Carol'), ('Bob'), ('Sam'), ('David'), ('Maxwell'), ('Ramit'), ('James');

DELETE से पहले ROW_COUNT()

mysql> SELECT ROW_COUNT();
+-------------+
| ROW_COUNT() |
+-------------+
| -1          |
+-------------+

-1 का अर्थ: पिछला स्टेटमेंट SELECT था (कोई पंक्ति प्रभावित नहीं)

DELETE स्टेटमेंट

mysql> DELETE FROM rowAffectedByDeleteDemo 
    -> WHERE CustomerId = 3 OR CustomerId = 4 OR CustomerId = 5 OR CustomerId = 6;
Query OK, 4 rows affected (0.13 sec)

DELETE के बाद ROW_COUNT()

mysql> SELECT ROW_COUNT();
+-------------+
| ROW_COUNT() |
+-------------+
| 4           |
+-------------+

4 पंक्तियाँ हटाई गईं (CustomerId 3, 4, 5, 6)

ROW_COUNT() मान

पिछला स्टेटमेंटROW_COUNT()
SELECT-1
INSERT (n पंक्तियाँ)n
UPDATE (n बदली गई)n
DELETE (n हटाई गई)n
REPLACEप्रभावित पंक्तियाँ
DDL (CREATE, ALTER)0

प्रोग्रामेटिक उपयोग

स्टोर्ड प्रोसीजर में

DELETE FROM orders WHERE order_date < '2020-01-01';
SELECT ROW_COUNT() INTO @deleted_count;
SELECT CONCAT('Deleted ', @deleted_count, ' old orders');

एप्लिकेशन कोड में (PHP PDO)

$stmt = $pdo->exec("DELETE FROM logs WHERE created < DATE_SUB(NOW(), INTERVAL 30 DAY)");
echo "Deleted $stmt rows";  // PDO exec प्रभावित पंक्तियाँ लौटाता है

नोट: MySQL क्लाइंट में

MySQL कमांड लाइन क्लाइंट DELETE के बाद स्वचालित रूप से दिखाता है:

Query OK, 4 rows affected (0.13 sec)

ROW_COUNT() तब उपयोगी है जब आपको प्रोग्रामेटिक रूप से मान चाहिए।

  1. - MySQL में पंक्तियाँ कैसे छोड़ें (स्किप करें)?

    MySQL में LIMIT OFFSET से पंक्तियाँ छोड़ना परिणाम सेट से कुछ प्रारंभिक पंक्तियाँ छोड़ने के लिए LIMIT ... OFFSET का उपयोग करें। टेबल बनाना और डेटा डालना mysql> CREATE TABLE DemoTable860 ( Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, Name VARCHAR(100) ); Query OK, 0 rows affected (0.73 sec)

  1. - MySQL में अंतिम क्वेरी की पंक्तियों की संख्या कैसे खोजें

    SQL_CALC_FOUND_ROWS और FOUND_ROWS() के साथ कुल पंक्तियां गिनना जब आप LIMIT का उपयोग करते हैं लेकिन यह भी जानना चाहते हैं कि बिना LIMIT के कितनी पंक्तियां मिलतीं, तो SQL_CALC_FOUND_ROWS और FOUND_ROWS() का उपयोग करें। सिंटैक्स SELECT SQL_CALC_FOUND_ROWS TABLE_NAME FROM `information_schema`.tables W

  1. - Java में कैसे पता करें कि स्ट्रिंग का पहला कैरेक्टर नंबर है या नहीं?

    isDigit() विधि का उपयोग करके java.lang.Character क्लास की isDigit() विधि एक कैरेक्टर को पैरामीटर के रूप में स्वीकार करती है और निर्धारित करती है कि यह डिजिट है या नहीं। यदि दिया गया कैरेक्टर डिजिट है तो यह विधि true लौटाती है, अन्यथा यह विधि false लौटाती है। इसलिए, दी गई स्ट्रिंग के पहले कैरेक्टर