MySQL NULLIF(): खाली स्ट्रिंग को NULL में बदलना, अन्य मान अपरिवर्तित
NULLIF(expr1, expr2) फंक्शन यदि expr1 = expr2 तो NULL लौटाता है, अन्यथा expr1। यह खाली स्ट्रिंग ('') को NULL में बदलने के लिए आदर्श है बिना अन्य मानों को प्रभावित किए।
उदाहरण: केवल खाली नाम को NULL करें
टेबल बनाएं:
CREATE TABLE DemoTable (Name VARCHAR(50));
INSERT INTO DemoTable VALUES ('Mike'), (''), ('David'), (''), ('Mike');
डेटा:
+-------+ | Name | +-------+ | Mike | | | | David | | | | Mike | +-------+
NULLIF से अपडेट
UPDATE DemoTable SET Name = NULLIF(Name, '');
परिणाम:
Query OK, 2 rows affected (0.19 sec) Rows matched: 5 Changed: 2 Warnings: 0
जांचें
SELECT * FROM DemoTable;
+-------+ | Name | +-------+ | Mike | | NULL | | David | | NULL | | Mike | +-------+
यह कैसे काम करता है?
NULLIF(Name, '')— यदि Name = '' तो NULL, अन्यथा Name (मूल मान)- केवल खाली स्ट्रिंग प्रभावित होती है
- 'Mike', 'David' अपरिवर्तित रहते हैं
तुलना: गलत तरीका (सभी NULL हो जाएंगे)
-- 0 को NULL में बदलें (गणना में उपयोगी) NULLIF(Quantity, 0) -- विशिष्ट स्ट्रिंग को NULL में NULLIF(Status, 'N/A') -- विभाजन में शून्य से बचाव SELECT 100 / NULLIF(Count, 0) AS Avg -- Count=0 पर NULL लौटाएगा, त्रुटि नहीं