MySQL में किसी कॉलम में विशिष्ट स्ट्रिंग/पैटर्न वाली रो कैसे खोजें
MySQL में किसी कॉलम के अंदर विशिष्ट टेक्स्ट या पैटर्न वाली पंक्तियों को खोजने के लिए LIKE ऑपरेटर का उपयोग किया जाता है। यह आंशिक मिलान (partial matching) के लिए सबसे उपयोगी है।
बुनियादी सिंटैक्स:
SELECT * FROM yourTableName WHERE yourColumnName LIKE '%yourPattern%';
यहां % वाइल्डकार्ड है जो किसी भी संख्या में कैरेक्टर को दर्शाता है।
व्यावहारिक उदाहरण
1. टेबल बनाएं:
mysql> CREATE TABLE PatternDemo (
-> Id INT,
-> Name VARCHAR(100),
-> Age INT
-> );
Query OK, 0 rows affected (0.97 sec)
2. डेटा डालें:
mysql> INSERT INTO PatternDemo VALUES(1,'James',23); mysql> INSERT INTO PatternDemo VALUES(2,'Joseph',21); mysql> INSERT INTO PatternDemo VALUES(3,'Robert',20); mysql> INSERT INTO PatternDemo VALUES(4,'John',26); mysql> INSERT INTO PatternDemo VALUES(5,'Richard',24);
3. सभी रिकॉर्ड देखें:
mysql> SELECT * FROM PatternDemo;
+------+---------+------+ | Id | Name | Age | +------+---------+------+ | 1 | James | 23 | | 2 | Joseph | 21 | | 3 | Robert | 20 | | 4 | John | 26 | | 5 | Richard | 24 | +------+---------+------+ 5 rows in set (0.00 sec)
4. "Jo" वाले नाम खोजें:
mysql> SELECT * FROM PatternDemo WHERE Name LIKE '%Jo%';
+------+--------+------+ | Id | Name | Age | +------+--------+------+ | 2 | Joseph | 21 | | 4 | John | 26 | +------+--------+------+ 2 rows in set (0.00 sec)
महत्वपूर्ण LIKE पैटर्न:
| पैटर्न | अर्थ |
|---|---|
%abc% | कहीं भी "abc" हो |
abc% | "abc" से शुरू हो |
%abc | "abc" पर खत्म हो |
_abc | एक कैरेक्टर के बाद "abc" (अंडरस्कोर = सिंगल कैरेक्टर) |
प्रदर्शन टिप:
अगर कॉलम पर इंडेक्स है, तो abc% (प्रीफिक्स खोज) इंडेक्स का उपयोग करेगा, लेकिन %abc% फुल टेबल स्कैन करेगा।