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

SQL में वर्तमान मान जाने बिना INT टाइप कॉलम में मान जोड़कर अपडेट करना

UPDATE में कॉलम रेफरेंस के साथ मान जोड़ना

वर्तमान मान जाने बिना किसी INT कॉलम में मान जोड़ने के लिए UPDATE में SET column = column + value का उपयोग करें।

आइए पहले एक टेबल बनाते हैं:

mysql> CREATE TABLE DemoTable (
    StudentId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    StudentScore INT
);

रिकॉर्ड्स इन्सर्ट करें:

mysql> INSERT INTO DemoTable (StudentScore) VALUES (78);
mysql> INSERT INTO DemoTable (StudentScore) VALUES (89);
mysql> INSERT INTO DemoTable (StudentScore) VALUES (67);
mysql> INSERT INTO DemoTable (StudentScore) VALUES (95);

सभी रिकॉर्ड्स देखें:

mysql> SELECT * FROM DemoTable;

आउटपुट:

+-----------+--------------+
| StudentId | StudentScore |
+-----------+--------------+
| 1         | 78           |
| 2         | 89           |
| 3         | 67           |
| 4         | 95           |
+-----------+--------------+

StudentId = 3 के लिए StudentScore में 21 जोड़ने के लिए क्वेरी (वर्तमान मान 67 जाने बिना):

mysql> UPDATE DemoTable
    SET StudentScore = StudentScore + 21
    WHERE StudentId = 3;

आउटपुट: Query OK, 1 row affected

टेबल रिकॉर्ड्स फिर से जांचें:

mysql> SELECT * FROM DemoTable;

आउटपुट:

+-----------+--------------+
| StudentId | StudentScore |
+-----------+--------------+
| 1         | 78           |
| 2         | 89           |
| 3         | 88           |
| 4         | 95           |
+-----------+--------------+

व्याख्या:

  • StudentScore = StudentScore + 21: दाएं तरफ StudentScore वर्तमान मान पढ़ता है (67), 21 जोड़ता है (88), बाएं तरफ असाइन करता है
  • WHERE StudentId = 3: केवल उस पंक्ति को प्रभावित करता है
  • MySQL स्वचालित रूप से पढ़ता-लिखता है - आपको मान जानने की आवश्यकता नहीं

सामान्य पैटर्न्स:

-- इन्क्रीमेंट
UPDATE table SET counter = counter + 1 WHERE id = 5;

-- डिक्रीमेंट (स्टॉक कम करना)
UPDATE products SET stock = stock - quantity WHERE product_id = 10;

-- प्रतिशत वृद्धि
UPDATE employees SET salary = salary * 1.10 WHERE department = 'IT';

-- एकाधिक कॉलम
UPDATE stats SET views = views + 1, clicks = clicks + 1 WHERE page_id = 100;

परमाणुता: यह ऑपरेशन परमाणु (एटॉमिक) है - समवर्ती अपडेट्स में रेस कंडीशन नहीं होता क्योंकि MySQL पंक्ति लॉक करता है।

  1. - MySQL में ALTER TABLE से ऑटो-इन्क्रीमेंट कॉलम कस्टम प्रारंभ मान के साथ जोड़ें

    मौजूदा टेबल में ALTER TABLE ... ADD COLUMN और AUTO_INCREMENT = मान का उपयोग करके कस्टम प्रारंभ मान वाला ऑटो-इन्क्रीमेंट कॉलम जोड़ सकते हैं। सिंटैक्स ALTER TABLE टेबल_नाम ADD COLUMN कॉलम_नाम INT NOT NULL AUTO_INCREMENT PRIMARY KEY, AUTO_INCREMENT = प्रारंभ_मान; उदाहरण: StudentId कॉलम 1000 से शुरू क

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

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

  1. - MySQL क्वेरी: अधिकतम संचयी मान प्राप्त करें

    समाधान सबक्वेरी में गुणनफल की गणना करें, फिर GROUP BY और ORDER BY से अधिकतम खोजें। उदाहरण टेबल बनाएं: INSERT INTO demo23 (value1, value2) VALUES (5,600), (20,800), (7,400), (6,500), (10,300), (11,500); क्वेरी LIMIT 1; परिणाम +-------------+-----------------------+ | total_value | number_of_occu