MySQL में किसी विशिष्ट मान (जिसमें विशेष वर्ण शामिल हों) को खोजकर उसे NULL से बदलने के लिए, साधारण UPDATE स्टेटमेंट के साथ WHERE क्लॉज़ का उपयोग करें। विशेष वर्णों के लिए स्ट्रिंग लिटरल में उचित एस्केपिंग या कोटिंग आवश्यक है।
उदाहरण: अंडरस्कोर वाले कोड को NULL करना
डेमो टेबल बनाएं:
mysql> CREATE TABLE DemoTable1914 (
Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
Code VARCHAR(20)
) AUTO_INCREMENT = 1001;
डेटा इन्सर्ट करें:
mysql> INSERT INTO DemoTable1914 (Code) VALUES
('John101'), ('234David'), ('100_Mike');
अपडेट से पहले:
+------+----------+ | Id | Code | +------+----------+ | 1001 | John101 | | 1002 | 234David | | 1003 | 100_Mike | +------+----------+
विशिष्ट मान को NULL से अपडेट करें:
mysql> UPDATE DemoTable1914 SET Code = NULL WHERE Code = '100_Mike';
अपडेट के बाद:
+------+----------+ | Id | Code | +------+----------+ | 1001 | John101 | | 1002 | 234David | | 1003 | NULL | +------+----------+
विशेष वर्णों को संभालना
यदि खोज मान में विशेष वर्ण हैं:
-- सिंगल कोट में विशेष वर्ण (बैकस्लैश, कोट) एस्केप करें UPDATE table SET col = NULL WHERE col = 'O\'Reilly'; -- एस्केप्ड कोट UPDATE table SET col = NULL WHERE col = 'C:\\Path'; -- डबल बैकस्लैश -- या डबल कोट उपयोग करें (ANSI_QUOTES मोड पर निर्भर) UPDATE table SET col = NULL WHERE col = "O'Reilly";
पैटर्न मिलान के साथ NULL करना
यदि सटीक मान नहीं पता लेकिन पैटर्न पता है:
-- अंडरस्कोर वाले सभी कोड NULL करें UPDATE DemoTable1914 SET Code = NULL WHERE Code LIKE '%_%'; -- रेगुलर एक्सप्रेशन के साथ UPDATE DemoTable1914 SET Code = NULL WHERE Code REGEXP '[0-9]_';
सावधानियां
- कॉलम NULLable होना चाहिए: NOT NULL कॉलम पर NULL सेट करने से एरर होगा
- WHERE क्लॉज़: हमेशा WHERE उपयोग करें, अन्यथा पूरा कॉलम NULL हो जाएगा
- ट्रांजैक्शन: बड़े अपडेट के लिए ट्रांजैक्शन उपयोग करें
- इंडेक्स: WHERE कॉलम पर इंडेक्स परफॉरमेंस सुधारेगा
यह तकनीक डेटा क्लीनिंग, अमान्य एंट्री हटाने, और सॉफ्ट डिलीट पैटर्न के लिए उपयोगी है।