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

MySQL में LIKE ऑपरेटर से कीवर्ड आधारित खोज प्रणाली बनाना

LIKE ऑपरेटर से खोज प्रणाली

LIKE ऑपरेटर वाइल्डकार्ड (%, _) के साथ पैटर्न मिलान करने के लिए उपयोग किया जाता है, जिससे सरल खोज प्रणाली बनाई जा सकती है।

उदाहरण: टेबल बनाना और डेटा इन्सर्ट करना

mysql> CREATE TABLE DemoTable812(Comments TEXT);
Query OK, 0 rows affected (0.61 sec)

रिकॉर्ड्स इन्सर्ट करना

mysql> INSERT INTO DemoTable812 VALUES
    ('Good Looking'),('Awesome'),('Looking Gorgeous'),('Good Luck'),('Have a nice day');
Query OK, 5 rows affected (...)

सभी रिकॉर्ड्स देखना

mysql> SELECT * FROM DemoTable812;
+------------------+
| Comments         |
+------------------+
| Good Looking     |
| Awesome          |
| Looking Gorgeous |
| Good Luck        |
| Have a nice day  |
+------------------+
5 rows in set (0.00 sec)

कीवर्ड 'Look' से खोज क्वेरी

mysql> SELECT * FROM DemoTable812 WHERE Comments LIKE '%Look%';

परिणाम

+------------------+
| Comments         |
+------------------+
| Good Looking     |
| Looking Gorgeous |
+------------------+
2 rows in set (0.00 sec)

खोज पैटर्न के प्रकार

पैटर्नव्यवहारउदाहरण मिलान
'%keyword%'कहीं भी कीवर्ड हो (सबस्ट्रिंग खोज)'Look', 'Looking', 'Outlook'
'keyword%'कीवर्ड से शुरू हो'Looking', 'Looker'
'%keyword'कीवर्ड पर समाप्त हो'Outlook', 'Overlook'
'_keyword'एक वर्ण के बाद कीवर्ड'FLook', 'BLook'

केस सेंसिटिविटी

  • डिफ़ॉल्ट: केस-इनसेंसिटिव (कोलेशन पर निर्भर)
  • केस-सेंसिटिव खोज: WHERE Comments LIKE BINARY '%Look%'
  • केस-इनसेंसिटिव बाध्य: WHERE LOWER(Comments) LIKE '%look%'

व्यावहारिक खोज प्रणाली पैटर्न

1. बहु-कीवर्ड खोज (OR)

SELECT * FROM DemoTable812 
WHERE Comments LIKE '%Good%' OR Comments LIKE '%Great%';

2. बहु-कीवर्ड खोज (AND - सभी कीवर्ड मौजूद हों)

SELECT * FROM DemoTable812 
WHERE Comments LIKE '%Good%' AND Comments LIKE '%Look%';

3. डायनामिक पैरामीटर के साथ (एप्लिकेशन कोड में)

-- PHP/Python आदि में
$query = "SELECT * FROM DemoTable812 WHERE Comments LIKE '%" . $keyword . "%'";

प्रदर्शन विचार

  • लीडिंग वाइल्डकार्ड (%text) इंडेक्स उपयोग नहीं कर सकता → फुल टेबल स्कैन
  • बड़े टेक्स्ट कॉलम्स के लिए FULLTEXT INDEX और MATCH() AGAINST() उपयोग करें
  • FULLTEXT खोज अधिक शक्तिशाली है: प्राकृतिक भाषा, बूलियन मोड, रैंकिंग

FULLTEXT खोज उदाहरण

ALTER TABLE DemoTable812 ADD FULLTEXT(Comments);

SELECT * FROM DemoTable812 
WHERE MATCH(Comments) AGAINST('+Look*' IN BOOLEAN MODE);
  1. - MySQL में LIKE का उपयोग करके पहली टेबल से नई टेबल कैसे बनाएं

    CREATE TABLE ... LIKE के साथ टेबल स्ट्रक्चर कॉपी करना मौजूदा टेबल की संरचना (कॉलम्स, इंडेक्सेस, कंस्ट्रेंट्स) कॉपी करके नई टेबल बनाने के लिए CREATE TABLE ... LIKE का उपयोग करें। ध्यान दें: यह केवल स्ट्रक्चर कॉपी करता है, डेटा नहीं। पहली टेबल बनाएं: mysql> CREATE TABLE DemoTable1 ( EmployeeId

  1. - MySQL में @ चिह्न (उपयोगकर्ता-परिभाषित चर) का उपयोग करें

    MySQL में @ चिह्न **उपयोगकर्ता-परिभाषित चर (user-defined variables)** को दर्शाता है। ये चर सत्र-विशिष्ट (session-specific) होते हैं और एक कनेक्शन के भीतर मानों को अस्थायी रूप से संग्रहीत करके क्वेरी के बीच साझा करने की अनुमति देते हैं। सिंटैक्स SET @variable_name := value; या SELECT में असाइनमेंट:

  1. - MySQL में LIKE क्वेरी से % चिह्न वाले कॉलम मान खोजना

    ESCAPE करके % को शाब्दिक मिलान करना LIKE में % वाइल्डकार्ड है। इसे शाब्दिक % वर्ण के रूप में खोजने के लिए बैकस्लैश \ से एस्केप करें: \\%। तालिका और डेटा (%JohnSmith), (DavidMiller), (CarolTaylor%), (%DavidMiller); क्वेरी: % से शुरू होने वाले नाम SELECT * FROM DemoTable1497 WHERE Name LIKE \\%;