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

php और mysql डेटाबेस का उपयोग करते समय एक प्रभावी खोज एल्गोरिदम को कैसे कार्यान्वित करें?

ऐसा करने के दो अलग-अलग तरीके:

सबसे तेज़ (प्रदर्शन के अनुसार) है:select * FROM Table where keyword LIKE '%value%' इस में चाल % की नियुक्ति है जो एक वाइल्डकार्ड है, यह कहते हुए कि या तो वह सब कुछ खोजें जो समाप्त होता है या इस मान से शुरू होता है।

अधिक लचीला लेकिन (थोड़ा) धीमा REGEXP फ़ंक्शन हो सकता है:

Select * FROM Table WHERE keyword REGEXP 'value'

यह नियमित अभिव्यक्तियों की शक्ति का उपयोग कर रहा है, इसलिए आप इसके साथ जितना चाहें उतना विस्तृत हो सकते हैं। हालांकि, ऊपर के रूप में छोड़ने से आपको एक "गरीब आदमी का Google" मिलता है, जिससे खोज बिट्स और समग्र क्षेत्रों के टुकड़े हो जाती है।

यदि आप नाम खोजने की कोशिश कर रहे हैं तो चिपचिपा हिस्सा आता है। उदाहरण के लिए, यदि आप एसएमआई खोजते हैं तो या तो "स्मिथ" नाम मिलेगा। हालांकि, न तो "जॉन स्मिथ" मिलेगा, अगर कोई पहला और अंतिम नाम फ़ील्ड अलग किया गया हो। तो, आपको जॉन या स्मिथ या जॉन स्मिथ या स्मिथ, जॉन को खोजने के लिए खोज के लिए कुछ संयोजन करना होगा। यह वास्तव में वहां से स्नोबॉल कर सकता है।

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

SELECT * FROM table WHERE first LIKE '%value%' OR last LIKE '%value%' OR address LIKE '%value'



  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 बाइनरी ट्री में डाउनलाइन की संख्या की गणना करें

  2. Mysql::Error:निर्दिष्ट कुंजी बहुत लंबी थी; अधिकतम कुंजी लंबाई 1000 बाइट्स है

  3. कीवर्ड खोज और रैंक परिणाम

  4. MySQL:InnoDb:सेमाफोर प्रतीक्षा> 600 सेकंड तक चली। हम जानबूझकर सर्वर को क्रैश करते हैं

  5. शीर्ष 10 MySQL में सर्वोत्तम प्रथाओं