REPLACE() से बैकस्लैश बदलना
फोल्डर पथ में बैकस्लैश (\) को अन्य वर्ण (जैसे ----) से बदलने के लिए REPLACE() फंक्शन का उपयोग करें। SQL स्ट्रिंग में बैकस्लैश को एस्केप करना पड़ता है।
उदाहरण: टेबल बनाना और डेटा इन्सर्ट करना
mysql> CREATE TABLE DemoTable827(Path TEXT); Query OK, 0 rows affected (0.69 sec)
बैकस्लैश वाले पथ इन्सर्ट करना
mysql> INSERT INTO DemoTable827 VALUES('C\\MySQL'),('D\\NewFolder\\'),('E:\\myFolder\\MyDocument');
Query OK, 3 rows affected (...)
नोट: SQL स्ट्रिंग लिटरल में \\ एक बैकस्लैश \ दर्शाता है।
सभी रिकॉर्ड्स देखना
mysql> SELECT * FROM DemoTable827;
+------------------------+ | Path | +------------------------+ | C\MySQL | | D\NewFolder\ | | E:\myFolder\MyDocument | +------------------------+ 3 rows in set (0.00 sec)
बैकस्लैश को '----' से बदलने की क्वेरी
mysql> UPDATE DemoTable827 SET Path = REPLACE(Path, '\\', '----'); Query OK, 3 rows affected (0.18 sec) Rows matched: 3 Changed: 3 Warnings: 0
महत्वपूर्ण: REPLACE के दूसरे आर्गुमेंट में '\\' लिखना पड़ता है जो वास्तविक बैकस्लैश दर्शाता है।
अपडेट के बाद डेटा देखना
mysql> SELECT * FROM DemoTable827;
+------------------------------+ | Path | +------------------------------+ | C----MySQL | | D----NewFolder---- | | E:----myFolder----MyDocument | +------------------------------+ 3 rows in set (0.00 sec)
एस्केपिंग नियम
| संदर्भ | बैकस्लैश लिखें | वास्तविक मान |
|---|---|---|
| SQL स्ट्रिंग लिटरल | '\\' | \ |
| नियमित अभिव्यक्ति | '\\\\' | \\ |
| LIKE पैटर्न | '\\\\' | \\ |
| JSON | '\\\\' | \\ |
फॉरवर्ड स्लैश में बदलना (वेब/यूनिक्स पथ)
UPDATE DemoTable827 SET Path = REPLACE(Path, '\\', '/');
परिणाम
+--------------------------+ | Path | +--------------------------+ | C/MySQL | | D/NewFolder/ | | E:/myFolder/MyDocument | +--------------------------+
SELECT में बदलना (डेटा बदले बिना)
SELECT REPLACE(Path, '\\', '/') AS UnixPath FROM DemoTable827;
एकाधिक वर्ण बदलना (नेस्टेड REPLACE)
UPDATE DemoTable827 SET Path = REPLACE(REPLACE(Path, '\\', '/'), ':', ';');
नियमित अभिव्यक्ति (MySQL 8.0+)
SELECT REGEXP_REPLACE(Path, '\\\\', '/') FROM DemoTable827;
प्रदर्शन नोट
REPLACE()पूरे कॉलम को स्कैन करता है- बड़े टेबल्स पर बैच में अपडेट करें
- जनरेटेड कॉलम + इंडेक्स के लिए नॉर्मलाइज्ड पथ स्टोर करें
सुरक्षा विचार
पथ ट्रैवर्सल हमलों से बचने के लिए यूजर इनपुट से बने पथों को सैनिटाइज़ करें। REPLACE अकेले पर्याप्त नहीं है।