समाधान: NULLIF() फंक्शन का उपयोग करें
MySQL स्वचालित रूप से खाली स्ट्रिंग को NULL में नहीं बदलता। इसके लिए NULLIF() फंक्शन का उपयोग करें।
सिंटैक्स
SELECT NULLIF(yourColumnName, '') AS anyVariableName FROM yourTableName;
यदि कॉलम मान खाली स्ट्रिंग ('') है, तो NULLIF NULL लौटाता है। यदि मान पहले से NULL है, तो भी NULL लौटाता है।
व्यावहारिक उदाहरण
टेबल बनाना
mysql> CREATE TABLE ConvertEmptyStringToNULL (
Id INT NOT NULL AUTO_INCREMENT,
Name VARCHAR(20),
PRIMARY KEY(Id)
);
डेटा डालना (खाली स्ट्रिंग और NULL दोनों)
mysql> INSERT INTO ConvertEmptyStringToNULL(Name) VALUES('John');
mysql> INSERT INTO ConvertEmptyStringToNULL(Name) VALUES('');
mysql> INSERT INTO ConvertEmptyStringToNULL(Name) VALUES(NULL);
mysql> INSERT INTO ConvertEmptyStringToNULL(Name) VALUES('');
mysql> INSERT INTO ConvertEmptyStringToNULL(Name) VALUES('Carol');
mysql> INSERT INTO ConvertEmptyStringToNULL(Name) VALUES(NULL);
मूल डेटा
+----+-------+ | Id | Name | +----+-------+ | 1 | John | | 2 | | | 3 | NULL | | 4 | | | 5 | Carol | | 6 | NULL | +----+-------+
NULLIF के साथ क्वेरी
mysql> SELECT NULLIF(Name, '') AS EmptyStringNULL FROM ConvertEmptyStringToNULL;
आउटपुट: खाली स्ट्रिंग अब NULL दिख रही है
+------------------+ | EmptyStringNULL | +------------------+ | John | | NULL | | NULL | | NULL | | Carol | | NULL | +------------------+
मुख्य बिंदु
NULLIF(expr1, expr2)यदिexpr1 = expr2हो तो NULL लौटाता है, अन्यथाexpr1।- यह केवल क्वेरी परिणाम में प्रदर्शन के लिए है; वास्तविक टेबल डेटा अपरिवर्तित रहता है।
- स्थायी बदलाव के लिए
UPDATEके साथNULLIFउपयोग करें।