MySQL में एक ही क्वेरी में मल्टीपल LIKE क्लॉज का उपयोग करने के लिए, आप उन्हें OR/AND ऑपरेटर्स के साथ जोड़ सकते हैं। सिंटैक्स:
SELECT * FROM yourTableName WHERE (yourColumnName1 LIKE '%yourValue1%' OR yourColumnName2 LIKE '%yourValue2%') OR (yourColumnName3 LIKE '%yourValue3%');
उदाहरण के लिए एक टेबल बनाते हैं:
mysql> create table DemoTable1534 (
-> ClientId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> ClientName VARCHAR(20),
-> ClientAge INT,
-> ClientCountryName VARCHAR(20)
-> );
Query OK, 0 rows affected (0.78 sec)
रिकॉर्ड इन्सर्ट करें:
mysql> insert into DemoTable1534(ClientName,ClientAge,ClientCountryName) values('Chris Brown',29,'AUS');
Query OK, 1 row affected (0.21 sec)
mysql> insert into DemoTable1534(ClientName,ClientAge,ClientCountryName) values('David Miller',49,'UK');
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable1534(ClientName,ClientAge,ClientCountryName) values('John Doe',43,'US');
Query OK, 1 row affected (0.22 sec)
mysql> insert into DemoTable1534(ClientName,ClientAge,ClientCountryName) values('Adam Smith',38,'US');
Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable1534(ClientName,ClientAge,ClientCountryName) values('Carol Taylor',36,'UK');
Query OK, 1 row affected (0.16 sec)
सभी रिकॉर्ड देखें:
mysql> select * from DemoTable1534;
+----------+--------------+-----------+-------------------+ | ClientId | ClientName | ClientAge | ClientCountryName | +----------+--------------+-----------+-------------------+ | 1 | Chris Brown | 29 | AUS | | 2 | David Miller | 49 | UK | | 3 | John Doe | 43 | US | | 4 | Adam Smith | 38 | US | | 5 | Carol Taylor | 36 | UK | +----------+--------------+-----------+-------------------+ 5 rows in set (0.00 sec)
मल्टीपल LIKE ऑपरेटर का उपयोग करने वाली क्वेरी:
mysql> select * from DemoTable1534
-> where ClientName LIKE ('%Doe%' OR ClientAge LIKE '%38%')
-> OR (ClientCountryName LIKE '%S');
परिणाम:
+----------+-------------+-----------+-------------------+ | ClientId | ClientName | ClientAge | ClientCountryName | +----------+-------------+-----------+-------------------+ | 1 | Chris Brown | 29 | AUS | | 3 | John Doe | 43 | US | | 4 | Adam Smith | 38 | US | +----------+-------------+-----------+-------------------+ 3 rows in set, 5 warnings (0.00 sec)
व्याख्या
क्वेरी निम्नलिखित शर्तों के आधार पर रिकॉर्ड्स फ़िल्टर करती है:
- ClientName LIKE '%Doe%' - 'Doe' नाम वाले क्लाइंट (John Doe)
- ClientAge LIKE '%38%' - उम्र 38 वाले क्लाइंट (Adam Smith)
- ClientCountryName LIKE '%S' - देश का नाम 'S' से समाप्त होने वाले क्लाइंट (AUS, US)
नोट: इस क्वेरी में 5 चेतावनियाँ (warnings) आईं क्योंकि संख्यात्मक कॉलम (ClientAge) पर LIKE का उपयोग करने से इम्प्लिसिट कन्वर्जन होता है। बेहतर अभ्यास है कि संख्यात्मक तुलना के लिए = या IN ऑपरेटर का उपयोग करें।
सुधारित क्वेरी
SELECT * FROM DemoTable1534 WHERE ClientName LIKE '%Doe%' OR ClientAge = 38 OR ClientCountryName LIKE '%S';