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

क्या MySQL में एक ही क्वेरी के साथ बूलियन फ़ील्ड को उलटने का कोई तरीका है?

<घंटा/>

हां, आप बूलियन फ़ील्ड को उलटने के लिए MySQL से if() फ़ंक्शन का उपयोग कर सकते हैं। वाक्य रचना इस प्रकार है -

UPDATE yourTableName SET yourBooleanColumnName = IF(yourBooleanColumnName,0,1);

उपरोक्त वाक्य रचना को समझने के लिए, आइए एक तालिका बनाते हैं। तालिका बनाने की क्वेरी इस प्रकार है -

mysql> create table ReverseBooleanField
   -> (
   -> Id int NOT NULL AUTO_INCREMENT,
   -> isValid BOOLEAN
   -> ,
   -> PRIMARY KEY(Id)
   -> );
Query OK, 0 rows affected (0.56 sec)

अब आप इंसर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डाल सकते हैं। क्वेरी इस प्रकार है -

mysql> insert into ReverseBooleanField(isValid) values(true);
Query OK, 1 row affected (0.18 sec)

mysql> insert into ReverseBooleanField(isValid) values(false);
Query OK, 1 row affected (0.14 sec)

mysql> insert into ReverseBooleanField(isValid) values(true);
Query OK, 1 row affected (0.29 sec)

mysql> insert into ReverseBooleanField(isValid) values(true);
Query OK, 1 row affected (0.09 sec)

mysql> insert into ReverseBooleanField(isValid) values(false);
Query OK, 1 row affected (0.14 sec)

चयन कथन का उपयोग करके तालिका से सभी रिकॉर्ड प्रदर्शित करें। क्वेरी इस प्रकार है -

mysql> select *from ReverseBooleanField;

निम्न आउटपुट है -

+----+---------+
| Id | isValid |
+----+---------+
|  1 |       1 |
|  2 |       0 |
|  3 |       1 |
|  4 |       1 |
|  5 |       0 |
+----+---------+
5 rows in set (0.00 sec)

MySQL आंतरिक रूप से BOOLEAN को TINYINT(1) में परिवर्तित करता है जो 1 के रूप में सत्य और 0 के रूप में गलत देता है।

अब, बूलियन फ़ील्ड को एक ही क्वेरी में उलट दें -

mysql> update ReverseBooleanField set isValid = if(isValid,0,1);
Query OK, 5 rows affected (0.21 sec)
Rows matched − 5 Changed − 5 Warnings − 0

जांचें कि बूलियन फ़ील्ड उलट है या नहीं, चयन कथन का उपयोग नहीं कर रहा है। क्वेरी इस प्रकार है -

mysql> select *from ReverseBooleanField;

निम्न आउटपुट है -

+----+---------+
| Id | isValid |
+----+---------+
| 1  |       0 |
| 2  |       1 |
| 3  |       0 | 
| 4  |       0 |
| 5  |       1 |
+----+---------+
5 rows in set (0.00 sec)

  1. - MySQL क्वेरी NULL के स्थान पर केवल एक फ़ील्ड को अपडेट करने के लिए

    इसके लिए आप COALESCE() का इस्तेमाल कर सकते हैं। आइए पहले एक टेबल बनाएं - टेबल बनाएं DemoTable1805 (Name1 varchar(20), Name2 varchar(20));क्वेरी ओके, 0 पंक्तियाँ प्रभावित (0.00 सेकंड) इंसर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें - DemoTable1805 मानों में डालें (NULL, माइक); क्वेरी ठीक है,

  1. - एकल MySQL क्वेरी के साथ दो कॉलम अपडेट करें

    इसके लिए आपको केवल एक बार SET कमांड का इस्तेमाल करना होगा। आइए पहले एक टेबल बनाएं - टेबल बनाएं DemoTable1909 (Id int NOT NULL, FirstName varchar(20), LastName varchar(20));क्वेरी ओके, 0 पंक्तियाँ प्रभावित (0.00 सेकंड) इंसर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें - DemoTable1909 मानों में

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

    आइए एक टेबल बनाएं - टेबल बनाएं DemoTable1922 (StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY, StudentName varchar(20));क्वेरी ठीक, 0 पंक्तियाँ प्रभावित (0.00 सेकंड) इंसर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें - DemoTable1922(StudentName) मानों (माइक) में डालें; क्वेरी ठीक है, 1 पंक्त