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

MySQL में INT फ़ील्ड का मान कैसे टॉगल करें (0↔1)?

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 सबसे कुशल हैं।

  1. - MySQL में उपयोगकर्ता वेरिएबल से दो फील्ड मानों को कैसे स्वैप करें?

    MySQL में दो कॉलम मान स्वैप करना: उपयोगकर्ता वेरिएबल का उपयोग MySQL में एक ही पंक्ति के दो कॉलम मानों को स्वैप करने के लिए उपयोगकर्ता वेरिएबल (@var) का उपयोग करके अस्थायी भंडारण किया जा सकता है। उदाहरण: Id=2 वाली पंक्ति में Number1 और Number2 स्वैप करें टेबल बनाएं: CREATE TABLE DemoTable ( Id I

  1. - MySQL में फ़ील्ड मान से कॉमा की गिनती करना

    LENGTH और REPLACE से वर्ण गिनती किसी वर्ण (जैसे कॉमा) की घटनाएँ गिनने के लिए: कुल लंबाई - उस वर्ण को हटाने के बाद की लंबाई। सिंटैक्स SELECT LENGTH(col) - LENGTH(REPLACE(col, ,, )) AS comma_count FROM table; तालिका और डेटा INSERT INTO DemoTable1510 VALUES(20,35), (45,67,89), (90,97,101,190); कॉ

  1. - MySQL में यूज़र-डिफ़ाइन्ड वेरिएबल से एक कॉलम का मान दूसरे कॉलम से प्राप्त करें

    MySQL में यूज़र-डिफ़ाइन्ड वेरिएबल (@var) का उपयोग करके पिछली पंक्ति के मान के आधार पर वर्तमान पंक्ति के लिए चल योग (क्यूमुलेटिव सम) या अन्य व्युत्पन्न मान की गणना कर सकते हैं। टेबल बनाएं mysql> CREATE TABLE DemoTable1868 (Value INT); डेटा डालें mysql> INSERT INTO DemoTable1868 VALUES(10), (2