$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'];
}
}
Run Code Online (Sandbox Code Playgroud)
如何将所有内容移动到一个查询中?不希望查询所有术语并在PHP中进行过滤.
我想在我的网站上搜索文章 - 是否可以使用简单的'LIKE'语句或者是否有更好的搜索算法用于MySQL?(重要的是它有效)
我有像"some-or-other"这样的关键字,其中连字符在搜索我的mysql数据库时很重要.我目前正在使用全文功能.
有没有办法逃脱连字符?我知道有一个选项是#define HYPHEN_IS_DELIM在myisam/ftdefs.h文件中注释掉,但不幸的是我的主机不允许这样做.还有其他选择吗?
编辑3-8-11这是我现在的代码:
$search_input = $_GET['search_input'];
$keyword_safe = mysql_real_escape_string($search_input);
$keyword_safe_fix = "*'\"" . $keyword_safe . "\"'*";
$sql = "
SELECT *,
MATCH(coln1, coln2, coln3) AGAINST('$keyword_safe_fix') AS score
FROM table_name
WHERE MATCH(coln1, coln2, coln3) AGAINST('$keyword_safe_fix')
ORDER BY score DESC
";
Run Code Online (Sandbox Code Playgroud)