亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Levenshtein:MySQL + PHP

Levenshtein:MySQL + PHP

PIPIONE 2019-08-27 10:35:14
Levenshtein:MySQL + PHP$word = strtolower($_GET['term']); $lev = 0;$q = mysql_query("SELECT `term` FROM `words`"); while($r = mysql_fetch_assoc($q)) {      $r['term'] = strtolower($r['term']);      $lev = levenshtein($word, $r['term']);     if($lev >= 0 && $lev < 5)     {         $word = $r['term'];     }}如何將所有內容移動到一個查詢中?不希望查詢所有術語并在PHP中進行過濾。
查看完整描述

3 回答

?
慕仙森

TA貢獻1827條經驗 獲得超8個贊

你需要在MySQL中使用levenshtein函數并進行查詢

$word = mysql_real_escape_string($word);mysql_qery("SELECT `term` FROM `words` WHERE levenshtein('$word', `term`) BETWEEN 0 AND 4");


查看完整回答
反對 回復 2019-08-27
?
呼啦一陣風

TA貢獻1802條經驗 獲得超6個贊

如果您有一個龐大的數據庫,您可以先使用SOUNDEX過濾單詞:

$word = strtolower(mysql_real_escape_string($_GET['term']));$rs = mysql_query("SELECT LOWER(`term`) FROM `words` WHERE SOUNDEX(term) = SOUNDEX(" . $word . ")");while ($row = mysql_fetch_assoc($rs)) { 

    $lev = levenshtein($word, $row['term']);

    ....}

如果你有足夠的時間玩C擴展或程序,你可以獲得更好的性能,但在應用真正的levenshtein之前過濾mysql上的記錄將使事情變得更快,幾乎不費力。


查看完整回答
反對 回復 2019-08-27
  • 3 回答
  • 0 關注
  • 548 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號