UPDATE के साथ IF() फ़ंक्शन
MySQL में पूर्णांक कॉलम (आमतौर पर 0/1 फ्लैग) का मान **टॉगल** (0→1, 1→0) करने के लिए UPDATE के साथ IF() फ़ंक्शन का उपयोग करें।
सिंटैक्स
UPDATE yourTableName
SET yourColumnName = IF(yourColumnName = 0, 1, 0);
व्यावहारिक उदाहरण
1. टेबल बनाएं और डेटा डालें
mysql> CREATE TABLE ToggleDemo (
-> IsOnOrOff INT
-> );
Query OK, 0 rows affected (0.53 sec)
mysql> INSERT INTO ToggleDemo VALUES(1);
mysql> INSERT INTO ToggleDemo VALUES(0);
mysql> INSERT INTO ToggleDemo VALUES(1);
mysql> INSERT INTO ToggleDemo VALUES(0);
mysql> INSERT INTO ToggleDemo VALUES(1);
mysql> INSERT INTO ToggleDemo VALUES(0);
2. मूल डेटा
mysql> SELECT * FROM ToggleDemo;
+-----------+
| IsOnOrOff |
+-----------+
| 1 |
| 0 |
| 1 |
| 0 |
| 1 |
| 0 |
+-----------+
6 rows in set (0.00 sec)
3. मान टॉगल करें
mysql> UPDATE ToggleDemo
-> SET IsOnOrOff = IF(IsOnOrOff = 0, 1, 0);
Query OK, 6 rows affected (0.12 sec)
Rows matched: 6 Changed: 6 Warnings: 0
4. परिणाम देखें
mysql> SELECT * FROM ToggleDemo;
+-----------+
| IsOnOrOff |
+-----------+
| 0 |
| 1 |
| 0 |
| 1 |
| 0 |
| 1 |
+-----------+
6 rows in set (0.00 sec)
वैकल्पिक विधियाँ
1. अंकगणितीय (सबसे तेज)
UPDATE ToggleDemo SET IsOnOrOff = 1 - IsOnOrOff;
0→1, 1→0. केवल 0/1 मानों के लिए काम करता है।
2. XOR ऑपरेटर
UPDATE ToggleDemo SET IsOnOrOff = IsOnOrOff ^ 1;
बिटवाइज़ XOR: 0^1=1, 1^1=0।
3. CASE WHEN
UPDATE ToggleDemo
SET IsOnOrOff = CASE IsOnOrOff WHEN 0 THEN 1 ELSE 0 END;
तुलना
| विधि | पठनीयता | प्रदर्शन | लचीलापन |
|---|---|---|---|
1 - col | उच्च | सबसे तेज | केवल 0/1 |
col ^ 1 | मध्यम | बहुत तेज | केवल 0/1 |
IF(col=0,1,0) | उच्च | तेज | कस्टम मान संभव |
CASE | उच्च | तेज | बहु-मान टॉगल |
सिफारिश: सरल 0/1 टॉगल के लिए 1 - col या col ^ 1 सबसे कुशल हैं।