LIKE के साथ OR ऑपरेटर
MySQL में किसी कॉलम में **एकाधिक पैटर्न** खोजने के लिए LIKE को OR के साथ जोड़ें।
सिंटैक्स
SELECT * FROM yourTableName
WHERE yourColumnName LIKE '%pattern1%'
OR yourColumnName LIKE '%pattern2%'
OR yourColumnName LIKE '%pattern3%' ...;
व्यावहारिक उदाहरण
1. टेबल बनाएं और डेटा डालें
mysql> CREATE TABLE LikeDemo (
-> Hobby VARCHAR(200)
-> );
Query OK, 0 rows affected (1.71 sec)
mysql> INSERT INTO LikeDemo VALUES('Reading Book');
mysql> INSERT INTO LikeDemo VALUES('Playing Cricket Match');
mysql> INSERT INTO LikeDemo VALUES('Playing Hockey Match');
mysql> INSERT INTO LikeDemo VALUES('Reading Novel');
mysql> INSERT INTO LikeDemo VALUES('Swimming');
2. सभी डेटा
mysql> SELECT * FROM LikeDemo;
+-----------------------+
| Hobby |
+-----------------------+
| Reading Book |
| Playing Cricket Match |
| Playing Hockey Match |
| Reading Novel |
| Swimming |
+-----------------------+
5 rows in set (0.00 sec)
3. 'Cricket' या 'Reading' वाली पंक्तियाँ खोजें
mysql> SELECT * FROM LikeDemo
-> WHERE Hobby LIKE '%Cricket%' OR Hobby LIKE '%Reading%';
+-----------------------+
| Hobby |
+-----------------------+
| Reading Book |
| Playing Cricket Match |
| Reading Novel |
+-----------------------+
3 rows in set (0.00 sec)
वैकल्पिक: REGEXP (नियमित अभिव्यक्ति)
SELECT * FROM LikeDemo
WHERE Hobby REGEXP 'Cricket|Reading';
अधिक संक्षिप्त, लेकिन बड़े डेटासेट पर धीमा हो सकता है (इंडेक्स उपयोग नहीं करता)।
IN ऑपरेटर (सटीक मिलान के लिए)
SELECT * FROM LikeDemo
WHERE Hobby IN ('Reading Book', 'Playing Cricket Match');
यह **सटीक मिलान** करता है, आंशिक नहीं।
प्रदर्शन सुझाव
LIKE 'pattern%'(प्रीफिक्स) इंडेक्स उपयोग कर सकता हैLIKE '%pattern%'(सबस्ट्रिंग) फुल टेबल स्कैन करता है- बड़े टेबल्स के लिए फुल-टेक्स्ट सर्च (
MATCH() AGAINST()) या ElasticSearch उपयोग करें ORशर्तें बढ़ने परREGEXPयाUNIONपर विचार करें
केस संवेदनशीलता
- डिफ़ॉल्ट कॉलेशन (
_ci) केस-असंवेदनशील - केस-संवेदनशील:
WHERE Hobby LIKE BINARY '%Cricket%'या_csकॉलेशन