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

MySQL में यूजर-डिफाइंड वेरिएबल से कॉलम वैल्यू अपडेट करना

यूजर-डिफाइंड वेरिएबल के साथ UPDATE

MySQL में सेशन वेरिएबल (@variable) सेट करके उसका उपयोग UPDATE स्टेटमेंट में कॉलम वैल्यू बढ़ाने/घटाने के लिए कर सकते हैं।

टेबल बनाना और डेटा इन्सर्ट करना

CREATE TABLE DemoTable1349 (
    ProductId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    ProductPrice INT
);

INSERT INTO DemoTable1349(ProductPrice) VALUES(7644);
INSERT INTO DemoTable1349(ProductPrice) VALUES(90843);
INSERT INTO DemoTable1349(ProductPrice) VALUES(9083);
INSERT INTO DemoTable1349(ProductPrice) VALUES(10000);

मौजूदा डेटा

+-----------+--------------+
| ProductId | ProductPrice |
+-----------+--------------+
| 1         | 7644         |
| 2         | 90843        |
| 3         | 9083         |
| 4         | 10000        |
+-----------+--------------+

क्वेरी: वेरिएबल सेट करके अपडेट करना

SET @AppendValue := 500;
UPDATE DemoTable1349 
SET ProductPrice = ProductPrice + @AppendValue 
WHERE ProductId = 4;
Query OK, 1 row affected (0.13 sec)
Rows matched: 1  Changed: 1  Warnings: 0

अपडेट के बाद डेटा

SELECT * FROM DemoTable1349;
+-----------+--------------+
| ProductId | ProductPrice |
+-----------+--------------+
| 1         | 7644         |
| 2         | 90843        |
| 3         | 9083         |
| 4         | 10500        |
+-----------+--------------+

महत्वपूर्ण बिंदु

  • @AppendValue सेशन-स्कोप्ड वेरिएबल है (कनेक्शन खुला रहने तक वैध)
  • := असाइनमेंट ऑपरेटर है (SET में = भी काम करता है)
  • वेरिएबल नाम केस-इनसेंसिटिव हैं
  • एक ही क्वेरी में सेट और उपयोग: UPDATE ... SET col = col + (@val := 500)

एकाधिक रो अपडेट करना

SET @Increment := 100;
UPDATE DemoTable1349 
SET ProductPrice = ProductPrice + @Increment 
WHERE ProductPrice < 10000;

वेरिएबल देखना

SELECT @AppendValue; -- 500 दिखाएगा

सावधानी

एक ही स्टेटमेंट में वेरिएबल असाइन और रीड करने का व्यवहार MySQL वर्जन पर निर्भर कर सकता है। अलग स्टेटमेंट्स में करना सुरक्षित है।

  1. - MySQL क्वेरी में UNION ALL से कस्टम मान जोड़ें

    कभी-कभी क्वेरी परिणाम में एक अतिरिक्त मान जोड़ना होता है जो टेबल में नहीं है। UNION ALL का उपयोग करके एक स्थिर मान को परिणाम सेट में जोड़ा जा सकता है। टेबल बनाएं mysql> CREATE TABLE DemoTable1847 ( GameStatus ENUM(PENDING,COMPLETED,CANCELLED) ); डेटा डालें mysql> INSERT INTO DemoTable184

  1. - MySQL में VARCHAR कॉलम से अधिकतम मान कैसे प्राप्त करें

    समस्या VARCHAR कॉलम पर MAX() सीधे काम नहीं करता क्योंकि स्ट्रिंग तुलना वर्णानुक्रम में होती है। समाधान CAST() का उपयोग करके VARCHAR को UNSIGNED INTEGER में बदलें फिर MAX() लागू करें। उदाहरण INSERT INTO DemoTable2030 VALUES (8), (1), (10001), (901); क्वेरी SELECT MAX(CAST(Value AS UNSIGNED)) FRO

  1. - MySQL में मान 0 होने पर दूसरे कॉलम का मान कैसे चुनें?

    IF() फ़ंक्शन का उपयोग यदि किसी कॉलम का मान 0 है तो दूसरे कॉलम का मान लेने के लिए IF() फ़ंक्शन प्रयोग करें: select IF(yourColumnName1=0, yourColumnName2, yourColumnName1) as anyAliasName from yourTableName; टेबल बनाना और डेटा डालना insert into demo30(value,original_value) values(30,0); डेटा देखना