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

MySQL में CASE स्टेटमेंट से एक क्वेरी में कई आइटम की कीमत बढ़ाएं

MySQL में CASE स्टेटमेंट का उपयोग करके एक ही UPDATE क्वेरी में विभिन्न उत्पादों की कीमतें अलग-अलग प्रतिशत से बढ़ा सकते हैं।

उदाहरण: उत्पाद कीमतों को अलग-अलग प्रतिशत से बढ़ाना

1. टेबल बनाएं

mysql> CREATE TABLE DemoTable (
    -> ProductName VARCHAR(20),
    -> ProductPrice INT
    -> );

2. डेटा डालें

mysql> INSERT INTO DemoTable VALUES('Product-1', 700);
mysql> INSERT INTO DemoTable VALUES('Product-2', 1000);
mysql> INSERT INTO DemoTable VALUES('Product-3', 3000);

3. वर्तमान कीमतें देखें

mysql> SELECT * FROM DemoTable;
+-------------+--------------+
| ProductName | ProductPrice |
+-------------+--------------+
| Product-1   | 700          |
| Product-2   | 1000         |
| Product-3   | 3000         |
+-------------+--------------+

4. CASE के साथ UPDATE क्वेरी

mysql> UPDATE DemoTable
    -> SET ProductPrice = CASE
    ->     WHEN ProductName = 'Product-1' THEN ProductPrice + (ProductPrice * 20 / 100)
    ->     WHEN ProductName = 'Product-2' THEN ProductPrice + (ProductPrice * 40 / 100)
    ->     WHEN ProductName = 'Product-3' THEN ProductPrice + (ProductPrice * 60 / 100)
    -> END;

5. अद्यतन कीमतें देखें

mysql> SELECT * FROM DemoTable;
+-------------+--------------+
| ProductName | ProductPrice |
+-------------+--------------+
| Product-1   | 840          |  -- 700 + 20% = 840
| Product-2   | 1400         |  -- 1000 + 40% = 1400
| Product-3   | 4800         |  -- 3000 + 60% = 4800
+-------------+--------------+

लाभ

  • सिंगल क्वेरी: एकाधिक UPDATE स्टेटमेंट की आवश्यकता नहीं
  • एटॉमिक: सभी अपडेट एक साथ होते हैं
  • पठनीय: तर्क स्पष्ट और संरचित होता है
  • प्रदर्शन: टेबल का एक ही पास

नोट

ELSE क्लॉज निर्दिष्ट न करने पर, मेल न खाने वाली पंक्तियों का मान NULL हो जाएगा। सुरक्षा के लिए ELSE ProductPrice जोड़ें।

  1. - MySQL में BETWEEN का उपयोग करके एकाधिक इनपुट्स के लिए मान प्रदर्शित करने का सिंगल क्वेरी

    MySQL में BETWEEN ऑपरेटर का उपयोग करके रेंज क्वेरी BETWEEN ऑपरेटर आपको एक समावेशी रेंज में मानों का चयन करने की अनुमति देता है। यह कई OR शर्तों या IN() सूची लिखने की तुलना में संख्यात्मक या तिथि रेंज के लिए अधिक संक्षिप्त और पठनीय है। टेबल बनाना ); Query OK, 0 rows affected (0.72 sec) डेटा डालना

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

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

  1. - विशिष्ट कॉलम मानों के लिए एकल MySQL क्वेरी में एकाधिक काउंट प्राप्त करें

    इसके लिए, आप विशिष्ट कॉलम के लिए पैरामीटर मान के साथ एग्रीगेट फंक्शन SUM() का उपयोग कर सकते हैं। आइए पहले एक टेबल बनाते हैं: mysql> create table DemoTable1790 ( Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, Name varchar(20), Score int ); Query OK, 0 rows affected (0.94 sec) इन्सर्ट कमा