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

MySQL में REPLACE() से फोल्डर पथ में बैकस्लैश बदलना

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 अकेले पर्याप्त नहीं है।

  1. - MySQL में REPLACE() से कॉलम मान में विशेष वर्ण बदलें

    MySQL का REPLACE() फ़ंक्शन किसी स्ट्रिंग में सभी घटनाओं को ढूंढकर नए स्ट्रिंग से बदल देता है। इसका उपयोग UPDATE के साथ करके कॉलम डेटा साफ़ कर सकते हैं। सिंटैक्स UPDATE टेबल_नाम SET कॉलम_नाम = REPLACE(कॉलम_नाम, पुराना_स्ट्रिंग, नया_स्ट्रिंग); उदाहरण: ______ को Mike_007 से बदलें 1. टेबल बनाएं CREA

  1. - MySQL में LEFT() फंक्शन का उपयोग करके केवल 15 वर्ण कैसे प्राप्त करें?

    MySQL में LEFT() फ़ंक्शन का उपयोग करके स्ट्रिंग के बाएं से निर्दिष्ट संख्या में वर्ण प्राप्त किए जा सकते हैं। ध्यान दें: यह शब्द नहीं, वर्ण गिनता है। सिंटैक्स LEFT(string, length) उदाहरण तालिका बनाएं और डेटा डालें: mysql> CREATE TABLE DemoTable (Title TEXT); mysql> INSERT INTO DemoTable VALU

  1. - MySQL में ENUM कॉलम से केवल 'NO' मानों की गणना करें

    MySQL में ENUM कॉलम पर सशर्त गणना के लिए बूलियन अभिव्यक्ति का योग (SUM(condition)) उपयोग कर सकते हैं। MySQL में TRUE = 1 और FALSE = 0 होता है। टेबल बनाएं mysql> CREATE TABLE DemoTable1829 ( Name VARCHAR(20), isTopper ENUM(YES,NO) ); डेटा डालें mysql> INSERT INTO DemoTable1829 VALUES(