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

MySQL में CASE स्टेटमेंट का उपयोग करके 'a' को 'b' और 'b' को 'a' से स्वैप करना

MySQL में CASE स्टेटमेंट के साथ मानों को स्वैप करना

जब एक कॉलम में केवल दो संभावित मान हों (जैसे 'a' और 'b'), तो CASE स्टेटमेंट का उपयोग करके उन्हें एक ही UPDATE क्वेरी में स्वैप किया जा सकता है।

व्यावहारिक उदाहरण

तालिका बनाना

mysql> CREATE TABLE DemoTable (
    Value CHAR(1)
);

रिकॉर्ड डालना

mysql> INSERT INTO DemoTable VALUES('a');
mysql> INSERT INTO DemoTable VALUES('b');
mysql> INSERT INTO DemoTable VALUES('a');
mysql> INSERT INTO DemoTable VALUES('a');
mysql> INSERT INTO DemoTable VALUES('b');
mysql> INSERT INTO DemoTable VALUES('a');
mysql> INSERT INTO DemoTable VALUES('b');

स्वैप करने से पहले डेटा देखना

mysql> SELECT * FROM DemoTable;

आउटपुट:

+-------+
| Value |
+-------+
| a     |
| b     |
| a     |
| a     |
| b     |
| a     |
| b     |
+-------+

CASE स्टेटमेंट के साथ स्वैप करने के लिए क्वेरी

mysql> UPDATE DemoTable 
SET Value = CASE 
    WHEN Value = 'a' THEN 'b' 
    ELSE 'a' 
END;

आउटपुट: Query OK, 7 rows affected

स्वैप करने के बाद डेटा देखना

mysql> SELECT * FROM DemoTable;

आउटपुट:

+-------+
| Value |
+-------+
| b     |
| a     |
| b     |
| b     |
| a     |
| b     |
| a     |
+-------+

यह तरीका क्यों काम करता है

CASE स्टेटमेंट प्रत्येक पंक्ति के लिए मूल मान का मूल्यांकन करता है और नया मान निर्धारित करता है। चूंकि यह एक ही परमाणु ऑपरेशन है, इसलिए कोई मध्यवर्ती स्थिति नहीं होती जहां मान गलत हों।

वैकल्पिक तरीका: UPDATE DemoTable SET Value = IF(Value = 'a', 'b', 'a');

  1. - MySQL में कॉलम मान 'None' को 'N/A' से कैसे अपडेट करें?

    कई बार डेटाबेस में None जैसे स्ट्रिंग मान स्टोर हो जाते हैं जो वास्तव में NULL या अनुपलब्ध डेटा दर्शाते हैं। ऐसे मानों को अधिक सार्थक N/A (Not Available) से बदलने के लिए MySQL का UPDATE स्टेटमेंट उपयोग करें। उदाहरण: None को N/A में बदलना डेमो टेबल बनाएं और डेटा इन्सर्ट करें: mysql> CREATE TABL

  1. - MySQL में स्ट्रिंग कॉलम (स्ट्रिंग, संख्या, विशेष वर्ण) से विशिष्ट रिकॉर्ड प्राप्त करें

    CAST और SUBSTRING से संख्यात्मक भाग अनुसार क्रमबद्ध करें John_12, Chris_101 जैसे स्ट्रिंग कॉलम से संख्यात्मक भाग निकालकर क्रमबद्ध करें और विशिष्ट रिकॉर्ड प्राप्त करें। टेबल बनाएं और डेटा डालें: mysql> create table DemoTable2006 ( UserId int NOT NULL AUTO_INCREMENT PRIMARY KEY, UserCode varchar(20

  1. - MySQL रेगुलर एक्सप्रेशन का उपयोग करके स्ट्रिंग, संख्या और विशेष वर्ण वाले कॉलम मानों के साथ टेबल अपडेट करें

    समाधान REGEXP ऑपरेटर के साथ UPDATE का उपयोग करके पैटर्न मिलान करें। उदाहरण टेबल बनाएं: INSERT INTO DemoTable2023 VALUES (7), (1), (AUS-100), (US-101); रेगुलर एक्सप्रेशन के साथ अपडेट केवल 1-2 अंकों वाले मानों के सामने Street जोड़ें: WHERE StreetNumber REGEXP ^[0-9]{1,2}$; परिणाम +--------------+