【发布时间】:2018-12-15 18:19:04
【问题描述】:
我想做sql搜索
现在我正在使用这个
$term="red sky";
$query=explode(' ', $term);
$sql = "SELECT * as result FROM `disk` WHERE ";
$a=0;
foreach ($query as $part)
{
$part=mysqli_real_escape_string($con, $part);
$a++;
if ($a==1)
{
$sql .= " title like '%".$part."%'";
}
else
{
$sql .= " and title like '%".$part."%'";
}
}
$sql = $sql." order by time desc";
$i=0;
if ($term!="")
{
$result = mysqli_query($con, $sql);
$row = mysqli_fetch_array($result);
}
所以这会导致显示如下结果:
- vredy tskyi
- 红色的天空
- vredy 天空
- 红色的天空
我想以某种方式订购它,因此它首先显示“红色天空”,其他结果相同,因此他们可以自行安排。
第二件事---这种类型的搜索有点慢,我想让它更快。请通过制作一个新的更快的脚本或在这个脚本中更新来帮助我。 (必须相同但更快)
更多详情请评论。很难解释
【问题讨论】:
-
@SynapseIndia 类似问题但答案不同,现在我只处理字符串...
-
@user3783243 这个怎么用????
-
创建一个索引,使用
match和against,然后它应该会给你一个关于术语出现频率的分数。按分数排序。