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

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

MySQL में UPDATE स्टेटमेंट में WHERE क्लॉज का उपयोग करके एक ही क्वेरी में एकाधिक कॉलम अपडेट किए जा सकते हैं, लेकिन एकाधिक पंक्तियों को अलग-अलग मानों से अपडेट करने के लिए CASE या एकाधिक क्वेरी की आवश्यकता होती है।

उदाहरण: एक पंक्ति, एकाधिक कॉलम

तालिका बनाएं:

mysql> CREATE TABLE DemoTable (
    -> Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    -> Marks1 INT, Marks2 INT, Marks3 INT
    -> );
mysql> INSERT INTO DemoTable(Marks1, Marks2, Marks3) VALUES (45, 67, 34), (89, 87, 56), (87, 56, 54);

पहले

+----+--------+--------+--------+
| Id | Marks1 | Marks2 | Marks3 |
+----+--------+--------+--------+
|  1 |     45 |     67 |     34 |
|  2 |     89 |     87 |     56 |
|  3 |     87 |     56 |     54 |
+----+--------+--------+--------+

Id=1 के लिए तीनों कॉलम अपडेट करें

mysql> UPDATE DemoTable
    ->> SET Marks1 = 98, Marks2 = 96, Marks3 = 99
    ->> WHERE Id = 1;

बाद में

+----+--------+--------+--------+
| Id | Marks1 | Marks2 | Marks3 |
+----+--------+--------+--------+
|  1 |     98 |     96 |     99 |
|  2 |     89 |     87 |     56 |
|  3 |     87 |     56 |     54 |
+----+--------+--------+--------+

एकाधिक पंक्तियों को अलग-अलग मानों से अपडेट (CASE)

UPDATE DemoTable
SET Marks1 = CASE Id
    WHEN 1 THEN 98
    WHEN 2 THEN 95
    WHEN 3 THEN 90
    ELSE Marks1 END,
Marks2 = CASE Id
    WHEN 1 THEN 96
    WHEN 2 THEN 94
    WHEN 3 THEN 88
    ELSE Marks2 END
WHERE Id IN (1, 2, 3);

मुख्य बिंदु

  • एक UPDATE में एकाधिक कॉलम: SET col1=val1, col2=val2
  • एकाधिक पंक्तियों, समान मान: WHERE Id IN (1,2,3)
  • एकाधिक पंक्तियों, अलग मान: CASE उपयोग करें
  • बिना WHERE के सभी पंक्तियां अपडेट होंगी

प्रदर्शन

  • एक क्वेरी में बैच अपडेट व्यक्तिगत क्वेरी से तेज़
  • बड़े बैच के लिए ट्रांजैक्शन उपयोग करें
  • Rows matched: 3 Changed: 3 पुष्टि करता है
  1. - MySQL में एक क्वेरी से दो कॉलम कैसे अपडेट करें?

    MySQL में एक ही UPDATE स्टेटमेंट में एकाधिक कॉलम अपडेट करने के लिए, SET क्लॉज़ में कॉलम को कॉमा से अलग करके सूचीबद्ध करें। यह एटॉमिक ऑपरेशन सुनिश्चित करता है और क्वेरी ओवरहेड कम करता है। उदाहरण: FirstName और LastName एक साथ अपडेट करना डेमो टेबल बनाएं: mysql> CREATE TABLE DemoTable1909 ( Id

  1. - MySQL में IN() क्लॉज़ के साथ एक क्वेरी में रिकॉर्ड कैसे डिलीट करें?

    MySQL में एक ही क्वेरी में एकाधिक विशिष्ट रिकॉर्ड डिलीट करने के लिए, DELETE स्टेटमेंट के साथ IN() ऑपरेटर का उपयोग करें। यह एकाधिक DELETE स्टेटमेंट चलाने से अधिक कुशल और पठनीय है। उदाहरण: विशिष्ट StudentId वाले रिकॉर्ड डिलीट करना डेमो टेबल बनाएं: mysql> CREATE TABLE DemoTable1922 ( StudentI

  1. - MySQL में एकल INSERT से एकाधिक रिकॉर्ड तेजी से डालें

    बल्क इंसर्ट सिंटैक्स से प्रदर्शन सुधारें एक ही INSERT स्टेटमेंट में कई मान सेट अल्पविराम से अलग करके डालें। सिंटैक्स: insert into yourTableName values(val1,val2,...),(val1,val2,...),...; उदाहरण: mysql> create table DemoTable2007 ( Amount1 int, Amount2 int, Amount3 int ); Query OK, 0 rows affected