我建立了利用mysqli
LIKE查询我的项目执行搜索功能的最大量。mysqli的查询ORDER BY匹配字符
我的最后一道障碍是在它输出ORDER
。
目前的情况:
if(isset($_GET['userInput']))
{
$search = $_GET['userInput'];
$search = explode(" ", $search);
if($search[0] != ''){
$firstterm = $search[0];
}else{
$firstterm = '@@@';
}
if($search[1] != ''){
$secondterm = $search[1];
}else{
$secondterm = '@@@';
}}
$contact = $mysqli->query("
SELECT * FROM contact WHERE
f_name LIKE '%$firstterm%'
OR l_name LIKE '%$firstterm%'
OR f_name LIKE '%$secondterm%'
OR l_name LIKE '%$secondterm%'
order by id LIMIT 5");
我的问题是,有没有被作为并列于id
匹配字符的最大量的方式来ORDER
。原因是如果我输入'C Blogs'寻找'Craig Blogs','C'将因为电子邮件地址而注册到我的联系人的每个人。'[c] om'。
因此,如果我可以通过大部分匹配字符来获取它(在两个以上的爆炸中增加的量),理论上最高结果应该是'Craig Blogs'。
我建议你在PHP中使用'levenshtein'函数来比较搜索项。 – Barmar
@Barmar感谢您的建议,我会着眼于此。如果你能指出我正在使用它作为一个例子,将不胜感激。 – Bjaeg
不知道在哪里可以找到示例。这就是搜索引擎的目的。基本上,你只是想使用'usort',并写一个比较函数来比较levenshtein($ a)和'levenshtein($ b)'。 – Barmar