Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MySQL

MySQL में LIKE ऑपरेटर से स्ट्रिंग खोज: WHERE क्लॉज में पैटर्न मिलान

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% फुल टेबल स्कैन करेगा।

  1. - MySQL में GROUP BY और HAVING से isMarried=0 वाली पंक्तियां चुनें और ClientId द्वारा समूहित करें

    MySQL में किसी कॉलम का मान विशिष्ट मान (जैसे isMarried = 0) होने वाली पंक्तियों को चुनकर, दूसरे कॉलम (ClientId) द्वारा समूहित करने के लिए GROUP BY के साथ HAVING का उपयोग करें। ध्यान दें: यह पैटर्न MySQL के ONLY_FULL_GROUP_BY मोड पर निर्भर करता है। सिंटैक्स SELECT column1, column2, filter_column FRO

  1. - MySQL में WHERE क्लॉज में तिथि घटाकर ROW कैसे चुनें?

    TIMESTAMPDIFF() फ़ंक्शन दो तिथियों के बीच अंतर (मिनट, घंटे, दिन आदि) निकालने के लिए: TIMESTAMPDIFF(UNIT, start_datetime, end_datetime) उदाहरण insert into demo42 values(2020-01-10 12:30:05), (2019-02-24 10:40:45), (2020-05-12 05:45:55), (2020-05-12 05:40:55), (2020-05-12 05:42:55); 5 मिनट के अंदर

  1. - MySQL में FIND_IN_SET() से कॉमा-सेपरेटेड स्ट्रिंग कॉलम में मान खोजकर WHERE IN जैसा फ़िल्टर करें

    FIND_IN_SET() उपयोग 0; उदाहरण insert into demo81(username) values(John,Chris,David), (Mike,Sam), (Chris,Bob,Sam), (Mike,John,Chris); Chris खोजना 0; +----+------------------+ | id | username | +----+------------------+ | 1 | John,Chris,David | | 3 | Chris,Bob,Sam | | 4 | Mike,John