用於與PHP 最佳化字串比較的MySQL Levenshtein 函數
在提供的程式碼中,使用PHP 的levenshtein() 函數來計算編輯距離使用者的輸入($word) 和單字表中的術語之間。然後,程式碼過濾表以尋找與使用者輸入編輯距離為 0 到 4 的術語。
最佳化此過程的一種方法是使用 MySQL 本身中的 Levenshtein 函數。 MySQL 提供了 Levenshtein 演算法的替代實現,稱為 EDIT_DISTANCE。透過利用此功能,您可以直接在資料庫中執行字串比較,從而無需 PHP 循環遍歷所有術語併計算編輯距離。
要實現此最佳化,您可以使用以下查詢:
$word = mysql_real_escape_string($word); mysql_query("SELECT `term` FROM `words` WHERE EDIT_DISTANCE('$word', `term`) BETWEEN 0 AND 4");
在此查詢中,EDIT_DISTANCE 計算 $word 與 Words 表中每個術語之間的編輯距離。 BETWEEN 0 AND 4 條件過濾結果以包含與使用者輸入的編輯距離為 0 到 4 的術語。
透過使用此最佳化查詢,您可以減少資料庫查詢次數並提高效能您的申請。
以上是MySQL 的 EDIT_DISTANCE 函數如何最佳化 PHP 中的字串比較?的詳細內容。更多資訊請關注PHP中文網其他相關文章!