Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

किसी वाक्यांश के लिए SQL तालिका के अंदर कैसे खोजें

शुद्ध MySQL में अच्छी तरह से हल करने के लिए, गलत वर्तनी समस्या कठिन है, यदि असंभव नहीं है।

बहु-स्तंभ FULLTEXT खोज इतनी बुरी नहीं है।

आपकी क्वेरी कुछ इस तरह दिखेगी...

 SELECT column, column
   FROM table
  WHERE MATCH(Company, FirstName, LastName, whatever, whatever) 
      AGAINST('search terms' IN NATURAL LANGUAGE MODE)

यह परिणामों का एक गुच्छा उत्पन्न करेगा, जो कि MySQL के अनुमानों के अनुसार सबसे पहले हिट होने की संभावना है। MySQL के अनुमान बहुत अच्छे नहीं हैं, लेकिन वे आमतौर पर पर्याप्त होते हैं।

आपको एक FULLTEXT . की आवश्यकता होगी आपके MATCH() में कॉलम की सूची से मेल खाने वाली अनुक्रमणिका खंड। उस इंडेक्स को बनाना इस तरह दिखता है।

ALTER TABLE book 
ADD FULLTEXT INDEX Fulltext_search_index_1 
    (Company, FirstName, LastName, whatever, whatever);

आपके प्रश्न में टिप्पणियों के बावजूद, आपको केवल उन स्तंभों के समूह के लिए एक अनुक्रमणिका की आवश्यकता है जिन्हें आप खोजेंगे।

किसी भी हाल के पुराने सर्वर हार्डवेयर पर 20K पंक्तियाँ एक बड़ा बोझ नहीं होंगी।

गलत वर्तनी:आप कोशिश कर सकते हैं SOUNDEX() , लेकिन यह अमेरिकी अंग्रेजी में लोगों के नाम देखने के लिए बेल सिस्टम द्वारा डिजाइन किया गया एक प्रारंभिक 20वीं सदी का एल्गोरिथम है। यह कई झूठी सकारात्मक हिट प्राप्त करने के लिए डिज़ाइन किया गया है, और यह वास्तव में चट्टानों की एक बाल्टी से भी कम है।

यदि आपको वास्तव में वर्तनी सुधार की आवश्यकता है तो आपको स्फिंक्स की जांच करने की आवश्यकता हो सकती है।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PHP में MySQL परिणाम के मेमोरी उपयोग को समझना (PDO)

  2. mysql डेटाबेस में html सामग्री सहेजना

  3. DATE_FORMAT () उदाहरण – MySQL

  4. क्वेरी के परिणाम को MySQL में एक वेरिएबल पर सेट करें

  5. एक्लिप्सलिंक के साथ खोए हुए कनेक्शन को फिर से कैसे कनेक्ट करें?