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

MySQL में UPDATE से रो मान 1 से घटाएं (डिक्रीमेंट)

MySQL में UPDATE कमांड और WHERE क्लॉज से विशिष्ट पंक्ति का मान 1 से घटाना

सिंटैक्स:

UPDATE yourTableName 
SET yourColumnName = yourColumnName - 1 
WHERE condition;

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

1. टेबल बनाएं:

mysql> CREATE TABLE IncrementAndDecrementValue (
    -> UserId INT,
    -> UserScores INT
    -> ); 
Query OK, 0 rows affected (0.60 sec)

2. डेटा डालें:

mysql> INSERT INTO IncrementAndDecrementValue VALUES(101,20000);
mysql> INSERT INTO IncrementAndDecrementValue VALUES(102,30000);
mysql> INSERT INTO IncrementAndDecrementValue VALUES(103,40000);

3. मूल डेटा:

+--------+------------+ 
| UserId | UserScores | 
+--------+------------+ 
| 101    | 20000      | 
| 102    | 30000      | 
| 103    | 40000      | 
+--------+------------+ 
3 rows in set (0.00 sec)

4. UserId=103 का स्कोर 1 से घटाएं:

mysql> UPDATE IncrementAndDecrementValue 
    -> SET UserScores = UserScores - 1 
    -> WHERE UserId = 103; 
Query OK, 1 row affected (0.41 sec) 
Rows matched: 1 Changed: 1 Warnings: 0

5. अपडेट के बाद:

+--------+------------+ 
| UserId | UserScores | 
+--------+------------+ 
| 101    | 20000      | 
| 102    | 30000      | 
| 103    | 39999      |  ← 40000 - 1
+--------+------------+ 
3 rows in set (0.00 sec)

विविधताएं:

निश्चित मान से घटाएं:

UPDATE table SET score = score - 10 WHERE id = 5;

शून्य से नीचे न जाने दें:

UPDATE table SET score = score - 1 WHERE id = 5 AND score > 0;

एक साथ कई पंक्तियां घटाएं:

UPDATE table SET score = score - 1 WHERE status = 'active';

RETURNING क्लॉज (MySQL 8.0.20+) से अपडेटेड मान देखें:

UPDATE table SET score = score - 1 WHERE id = 5 RETURNING score;

सावधानी:

  • WHERE के बिना सभी पंक्तियां अपडेट हो जाएंगी
  • पहले SELECT से प्रभावित पंक्तियां जांचें
  • समवर्ती अपडेट के लिए SELECT ... FOR UPDATE या ट्रांजैक्शन उपयोग करें

संबंधित: इंक्रीमेंट (बढ़ाना):

UPDATE table SET column = column + 1 WHERE condition;
  1. - MySQL में दिनांक के साथ पंक्ति डालने की क्वेरी

    आइए पहले एक टेबल बनाते हैं: mysql> create table DemoTable( EmployeeId int NOT NULL AUTO_INCREMENT PRIMARY KEY, EmployeeName varchar(100), JoiningDate date ); Query OK, 0 rows affected (0.48 sec) इन्सर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें: mysql> insert into DemoT

  1. - MySQL में UPDATE का उपयोग करके कॉलम मान रिप्लेस करना

    WHERE क्लॉज के साथ विशिष्ट पंक्ति का कॉलम मान अपडेट करना किसी विशिष्ट पंक्ति के कॉलम मान को बदलने के लिए UPDATE के साथ SET और WHERE का उपयोग करें। आइए पहले एक टेबल बनाते हैं: mysql> CREATE TABLE DemoTable ( StudentId INT NOT NULL AUTO_INCREMENT PRIMARY KEY, Score INT ); रिकॉर्ड्स इन्सर्ट

  1. - MySQL में Nth अधिकतम मान खोजने का क्वेरी

    आइए पहले एक टेबल बनाते हैं: mysql> create table DemoTable -> ( -> Value int -> ); Query OK, 0 rows affected (0.59 sec) इन्सर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें: mysql> insert into DemoTable values(40); Query OK, 1 row affected (0.26 sec) mysql> insert into DemoTable