有没有可能在 SQL 问题中获得 where 语句匹配的百分比?
类似于 PHP 函数 similiar_text ( http://php.net/manual/en/function.similar-text.php )
我的想法是,在 SQL 问题中,检查 where 语句是否匹配超过 95%,然后它应该继续。
这可能吗?如果是,我该怎么办?
编辑:
表:汽车
id type description
1 Toyota Nice car that runs very fast and have a big engine.
然后我的字符串包含以下 $description = '非常非常漂亮的汽车,运行速度非常快,引擎非常大。
如果有任何描述与我的 $description 字符串存在的任何描述相似,我想检查表“汽车”。如果没有,则应将其添加到表中。如果有 95% 或更多匹配,则不应将其添加到表中
EDIT2: 我的代码现在看起来像这样:
$query = $this->db->query('SELECT * FROM table
WHERE MATCH (title)
AGAINST ("The test text here " IN NATURAL LANGUAGE MODE)');
$i = 1;
foreach ($query->result() as $row)
{
echo $i . '. ';
echo $row->title;
echo "<br>";
$i++;
}
上面的代码首先给了我“最匹配”的结果,然后是第二个,依此类推。现在我把它打印出来了。我看到了一个解决方案,我在第一个匹配项上使用 PHP 函数similar_text 并获得匹配的百分比。之后我可以决定它是否匹配 95% 或更多我想将帖子添加到 DB 。但是有没有办法让我不在我的 PHP 代码中这样做,而是在 SQL 问题中这样做?