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

MySQL में एक क्वेरी से दो कॉलम कैसे अपडेट करें?

MySQL में एक ही UPDATE स्टेटमेंट में एकाधिक कॉलम अपडेट करने के लिए, SET क्लॉज़ में कॉलम को कॉमा से अलग करके सूचीबद्ध करें। यह एटॉमिक ऑपरेशन सुनिश्चित करता है और क्वेरी ओवरहेड कम करता है।

उदाहरण: FirstName और LastName एक साथ अपडेट करना

डेमो टेबल बनाएं:

mysql> CREATE TABLE DemoTable1909 (
    Id INT NOT NULL,
    FirstName VARCHAR(20),
    LastName VARCHAR(20)
);

डेटा इन्सर्ट करें:

mysql> INSERT INTO DemoTable1909 VALUES
(101, 'John', 'Smith'),
(102, 'John', 'Doe'),
(103, 'Adam', 'Smith'),
(104, 'David', 'Miller');

अपडेट से पहले:

+-----+-----------+----------+
| Id  | FirstName | LastName |
+-----+-----------+----------+
| 101 | John      | Smith    |
| 102 | John      | Doe      |
| 103 | Adam      | Smith    |
| 104 | David     | Miller   |
+-----+-----------+----------+

एक क्वेरी में दो कॉलम अपडेट करें (Id = 103 के लिए):

mysql> UPDATE DemoTable1909
SET FirstName = 'Carol', LastName = 'Taylor'
WHERE Id = 103;

अपडेट के बाद:

+-----+-----------+----------+
| Id  | FirstName | LastName |
+-----+-----------+----------+
| 101 | John      | Smith    |
| 102 | John      | Doe      |
| 103 | Carol     | Taylor   |
| 104 | David     | Miller   |
+-----+-----------+----------+

सिंटैक्स

UPDATE table_name
SET column1 = value1, column2 = value2, ..., columnN = valueN
WHERE condition;

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

  • एक SET क्लॉज़: एकाधिक SET कीवर्ड न लिखें
  • कॉमा सेपरेटर: कॉलम असाइनमेंट को कॉमा से अलग करें
  • एटॉमिक: सभी अपडेट एक ही ऑपरेशन में होते हैं
  • WHERE क्लॉज़: हमेशा उपयोग करें जब तक सभी पंक्तियाँ अपडेट न करनी हों

एक्सप्रेशन और सबक्वेरी के साथ अपडेट

-- एक्सप्रेशन
UPDATE products SET price = price * 1.1, updated_at = NOW() WHERE category = 'electronics';

-- सबक्वेरी से मान
UPDATE orders o
SET o.customer_name = (SELECT name FROM customers c WHERE c.id = o.customer_id),
    o.customer_email = (SELECT email FROM customers c WHERE c.id = o.customer_id)
WHERE o.customer_name IS NULL;

प्रदर्शन टिप

एक ही क्वेरी में एकाधिक कॉलम अपडेट करना अलग-अलग UPDATE स्टेटमेंट चलाने से तेज़ है क्योंकि:

  • सिंगल टेबल लॉक/स्कैन
  • कम नेटवर्क राउंड-ट्रिप
  • सिंगल ट्रांजैक्शन ओवरहेड

यह मानक SQL अभ्यास है और सभी प्रमुख RDBMS में समर्थित है।

  1. - MySQL में एकल क्वेरी में कई कॉलम को एक साथ सॉर्ट करना

    GREATEST() फंक्शन का उपयोग करके पंक्ति-वार अधिकतम के आधार पर सॉर्ट करना कई कॉलम सॉर्ट करने के लिए ORDER BY GREATEST() का उपयोग करें। पहले टेबल बनाएं: create table DemoTable1395 ( Value1 int, Value2 int, Value3 int ); Query OK, 0 rows affected (0.79 sec) रिकॉर्ड डालें: insert into DemoTable1395 val

  1. - MySQL में INSERT INTO SELECT UNION ALL से एक क्वेरी में दो टेबल में चयन और सम्मिलन

    MySQL में INSERT INTO ... SELECT ... UNION ALL ... SELECT का उपयोग करके एक ही क्वेरी में एक टेबल से डेटा चुनकर दूसरी टेबल में एकाधिक पंक्तियां डाल सकते हैं। उदाहरण 1. लक्ष्य टेबल बनाएं ); 2. स्रोत टेबल बनाएं INSERT INTO DemoTable2 VALUES(Chris); 3. एक क्वेरी में चयन और सम्मिलन SELECT Name, 98

  1. - MySQL में एक ही क्वेरी में एकाधिक रिकॉर्ड कैसे अपडेट करें?

    MySQL में UPDATE स्टेटमेंट में WHERE क्लॉज का उपयोग करके एक ही क्वेरी में एकाधिक कॉलम अपडेट किए जा सकते हैं, लेकिन एकाधिक पंक्तियों को अलग-अलग मानों से अपडेट करने के लिए CASE या एकाधिक क्वेरी की आवश्यकता होती है। उदाहरण: एक पंक्ति, एकाधिक कॉलम तालिका बनाएं: mysql> CREATE TABLE DemoTable ( -&