MySQL में LIKE पैटर्न मिलान में '%' वाइल्डकार्ड को एस्केप करना
जब किसी कॉलम में शाब्दिक '%' वर्ण हो और आप LIKE से खोजें, तो '%' को वाइल्डकार्ड के बजाय शाब्दिक वर्ण के रूप में मिलान करने के लिए बैकस्लैश (\) से एस्केप करें।
उदाहरण के साथ पूर्ण कार्यान्वयन
टेबल बनाना
mysql> CREATE TABLE DemoTable629 (
StudentId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
StudentSubject TEXT
);
रिकॉर्ड डालना (अलग-अलग स्थानों पर % के साथ)
mysql> INSERT INTO DemoTable629(StudentSubject) VALUES('MySQL%'), ('Spring%Hibernate'), ('%Java');
सभी रिकॉर्ड देखना
mysql> SELECT * FROM DemoTable629;
आउटपुट:
+-----------+------------------+
| StudentId | StudentSubject |
+-----------+------------------+
| 1 | MySQL% |
| 2 | Spring%Hibernate |
| 3 | %Java |
+-----------+------------------+
3 rows in set (0.00 sec)
अंत में '%' वाले रिकॉर्ड खोजना (एस्केप के साथ)
mysql> SELECT * FROM DemoTable629
WHERE StudentSubject LIKE '%\%';
आउटपुट:
+-----------+--------------+
| StudentId | StudentSubject |
+-----------+--------------+
| 1 | MySQL% |
+-----------+--------------+
1 row in set (0.00 sec)
एस्केप नियम:
\%- शाब्दिक '%' वर्ण से मिलान\_- शाब्दिक '_' वर्ण से मिलान (अंडरस्कोर भी वाइल्डकार्ड है)\\- शाब्दिक बैकस्लैश से मिलान- डिफ़ॉल्ट एस्केप वर्ण बैकस्लैश है
अन्य स्थानों पर '%' खोजना
-- शुरुआत में '%'
SELECT * FROM DemoTable629 WHERE StudentSubject LIKE '\%%';
-- मध्य में '%' (Spring%Hibernate)
SELECT * FROM DemoTable629 WHERE StudentSubject LIKE '%\%%';
-- कहीं भी '%'
SELECT * FROM DemoTable629 WHERE StudentSubject LIKE '%\%%';
कस्टम एस्केप वर्ण उपयोग करना
SELECT * FROM DemoTable629
WHERE StudentSubject LIKE '%|%' ESCAPE '|';
यहाँ | एस्केप वर्ण है, तो |% शाब्दिक '%' से मिलान करेगा।
RLIKE/REGEXP विकल्प
-- रेगुलर एक्सप्रेशन में % विशेष नहीं है
SELECT * FROM DemoTable629 WHERE StudentSubject RLIKE '%'; -- अंत में %
SELECT * FROM DemoTable629 WHERE StudentSubject RLIKE '^%'; -- शुरुआत में %
SELECT * FROM DemoTable629 WHERE StudentSubject RLIKE '%'; -- कहीं भी %
व्यावहारिक उपयोग
- उत्पाद कोड खोजना: 'PRD-%OFF' (अंत में %OFF)
- टैग खोजना: '%sale%' (शाब्दिक %sale%)
- वाइल्डकार्ड खोज इंटरफेस बनाना जहां उपयोगकर्ता शाब्दिक % खोज सके
नोट: LIKE पैटर्न में एस्केप न करने पर '%' किसी भी अनुक्रम से मिलान करता है, जो अनपेक्षित परिणाम दे सकता है।