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

MySQL में MATCH और AGAINST से विशिष्ट कॉलम में स्ट्रिंग खोजें

MySQL का Full-Text Search फीचर MATCH() ... AGAINST() का उपयोग करके टेक्स्ट कॉलम में कुशलता से खोज करने की अनुमति देता है। यह `LIKE '%term%'` से बहुत तेज़ है।

टेबल बनाएं और फुलटेक्स्ट इंडेक्स जोड़ें

mysql> CREATE TABLE DemoTable1833 (
    Name VARCHAR(20)
);

mysql> ALTER TABLE DemoTable1833 ADD FULLTEXT(Name);

डेटा डालें

mysql> INSERT INTO DemoTable1833 VALUES('John Doe');
mysql> INSERT INTO DemoTable1833 VALUES('Adam Smith');
mysql> INSERT INTO DemoTable1833 VALUES('Chris Brown');
mysql> INSERT INTO DemoTable1833 VALUES('John Smith');

बूलियन मोड में खोजें

+ ऑपरेटर का उपयोग करके अनिवार्य शब्द खोजें:

mysql> SELECT * FROM DemoTable1833
    WHERE MATCH(Name) AGAINST('+John +Smith' IN BOOLEAN MODE);

आउटपुट:

+------------+
| Name       |
+------------+
| John Smith |
| John Doe   |
| Adam Smith |
+------------+

व्याख्या

  • +John +Smith का अर्थ है दोनों शब्द होने चाहिए (AND लॉजिक)।
  • John Smith दोनों से मेल खाता है।
  • John Doe में "John" है।
  • Adam Smith में "Smith" है।
  • Chris Brown किसी से मेल नहीं खाता, इसलिए बाहर है।

महत्वपूर्ण बिंदु

  • कॉलम पर FULLTEXT इंडेक्स होना आवश्यक है।
  • MyISAM और InnoDB दोनों फुलटेक्स्ट सपोर्ट करते हैं (InnoDB 5.6+ से)।
  • बूलियन मोड में +, -, * (वाइल्डकार्ड) ऑपरेटर उपयोग कर सकते हैं।
  • न्यूनतम शब्द लंबाई डिफ़ॉल्ट 3-4 अक्षर होती है (कॉन्फ़िगर करने योग्य)।
  1. - MySQL में SUBSTRING और LOCATE से LIKE मिलान वाला उपस्ट्रिंग निकालकर नया कॉलम बनाएं

    LOCATE() से उपस्ट्रिंग की स्थिति खोजें और SUBSTRING() से निकालकर नया कॉलम बनाएं। टेबल बनाएं mysql> CREATE TABLE DemoTable1872 (Name VARCHAR(50)); डेटा डालें mysql> INSERT INTO DemoTable1872 VALUES(John Doe), (Adam Smith), (Mitchell Johnson); John मिलान निकालें mysql> SELECT Name, SUB

  1. - MySQL में SUBSTRING_INDEX का उपयोग करके हाइफ़न से अलग स्ट्रिंग को कई कॉलम्स में विभाजित करें

    MySQL में SUBSTRING_INDEX का उपयोग करके विभाजक द्वारा स्ट्रिंग पार्सिंग MySQL का SUBSTRING_INDEX() फ़ंक्शन एक स्ट्रिंग को विभाजक द्वारा विभाजित करने और विशिष्ट भाग निकालने के लिए अत्यंत उपयोगी है। यह CSV-शैली डेटा या संयुक्त फ़ील्ड्स को पार्स करने के लिए आदर्श है। टेबल बनाना ); Query OK, 0 rows af

  1. - MySQL में स्ट्रिंग कॉलम (स्ट्रिंग, संख्या, विशेष वर्ण) से विशिष्ट रिकॉर्ड प्राप्त करें

    CAST और SUBSTRING से संख्यात्मक भाग अनुसार क्रमबद्ध करें John_12, Chris_101 जैसे स्ट्रिंग कॉलम से संख्यात्मक भाग निकालकर क्रमबद्ध करें और विशिष्ट रिकॉर्ड प्राप्त करें। टेबल बनाएं और डेटा डालें: mysql> create table DemoTable2006 ( UserId int NOT NULL AUTO_INCREMENT PRIMARY KEY, UserCode varchar(20