MySQL में REPLACE() फ़ंक्शन और UPDATE का उपयोग करके कॉलम मानों से अवांछित विशेष वर्ण (जैसे #) हटाएं।
उदाहरण: टेबल बनाना और डेटा डालना
mysql> CREATE TABLE DemoTable (
-> StudentId VARCHAR(100)
-> );
Query OK, 0 rows affected (0.53 sec)
mysql> INSERT INTO DemoTable VALUES('STU#123'), ('STU#567'), ('STU#98494');
मौजूदा डेटा देखना
mysql> SELECT * FROM DemoTable;
आउटपुट
+-----------+ | StudentId | +-----------+ | STU#123 | | STU#567 | | STU#98494 | +-----------+ 3 rows in set (0.00 sec)
# वर्ण हटाने के लिए अपडेट करना
mysql> UPDATE DemoTable SET StudentId = REPLACE(StudentId, '#', ''); Query OK, 3 rows affected (0.13 sec) Rows matched: 3 Changed: 3 Warnings: 0
अपडेट के बाद डेटा देखना
mysql> SELECT * FROM DemoTable;
आउटपुट
+-----------+ | StudentId | +-----------+ | STU123 | | STU567 | | STU98494 | +-----------+ 3 rows in set (0.00 sec)
REPLACE() व्यवहार:
- निर्दिष्ट सबस्ट्रिंग के सभी उदाहरणों को बदलता है
- केस-सेंसिटिव (डिफ़ॉल्ट कॉलेशन के अनुसार)
- खाली स्ट्रिंग '' से बदलने पर वर्ण प्रभावी रूप से हट जाता है
बहु-वर्ण हटाने के लिए चेनिंग:
UPDATE DemoTable SET StudentId = REPLACE(REPLACE(REPLACE(StudentId, '#', ''), '-', ''), ' ', '');
MySQL 8.0+ विकल्प: REGEXP_REPLACE(StudentId, '[#\\- ]', '') - रेगेक्स पैटर्न से सभी मिलान एक बार में हटाएं।
सावधानी: प्राइमरी की या यूनिक कॉलम पर UPDATE करने से डुप्लिकेट की त्रुटि हो सकती है यदि परिणाम मौजूदा मान से टकराता है।