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

PHP/MySQL:क्वेरी परिणामों की तरह ध्वनि हाइलाइट करें

ध्यान दें कि SOUNDS LIKE जैसा आप सोचते हैं वैसा काम नहीं करता। यह LIKE . के बराबर नहीं है MySQL में, क्योंकि यह % . का समर्थन नहीं करता है वाइल्डकार्ड।

इसका अर्थ है कि "जॉन" की खोज करते समय आपकी क्वेरी को "जॉन डेविड" नहीं मिलेगा। यह स्वीकार्य हो सकता है यदि यह सिर्फ आपकी वापसी है, लेकिन यह आदर्श नहीं है।

तो यहाँ एक अलग सुझाव है (जिसमें सुधार की आवश्यकता हो सकती है); सबसे पहले PHP का उपयोग करें soundex() आप जिस कीवर्ड की तलाश कर रहे हैं उसका साउंडेक्स खोजने के लिए कार्य करें।

$soundex = soundex($word);
$soundexPrefix = substr($soundex, 0, 2); // first two characters of soundex
$sql = "SELECT lastname, firstname ".
    "FROM table WHERE SOUNDEX(lastname) LIKE '$soundexPrefix%' ".
    "OR SOUNDEX(firstname) LIKE '$soundexPrefix%'";

अब आपके पास पहले नामों और उपनामों की एक सूची होगी जिसमें ध्वनि में अस्पष्ट समानता है (यह बहुत सारी प्रविष्टियां हो सकती हैं, और हो सकता है कि आप अपनी खोज के लिए उपयोग किए जाने वाले ध्वनि उपसर्ग की लंबाई बढ़ाना चाहें)। फिर आप प्रत्येक शब्द के साउंडेक्स और अपने खोज शब्द के बीच लेवेनशेटिन दूरी की गणना कर सकते हैं, और उसके आधार पर छाँट सकते हैं।

दूसरा, आपको SQL इंजेक्शन बग से बचने के लिए MySQL में पैरामीटरयुक्त प्रश्नों को देखना चाहिए।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. सी # का उपयोग कर सम्मिलित पंक्ति की आईडी प्राप्त करें

  2. PHP का उपयोग करके MySQL डेटाबेस से डेटा प्राप्त करने का प्रयास करते समय HighCharts पाई चार्ट X-अक्ष मान प्रदर्शित नहीं होते हैं

  3. कोडनिर्देशक सक्रिय रिकॉर्ड को LIMIT क्लॉज के बिना क्वेरी और क्वेरी मिलती है

  4. mysql में बी-ट्री इंडेक्सिंग कैसे काम करता है

  5. एक MySQL तालिका को दूसरे के मानों के साथ अपडेट करें