是否有可能获得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字符串中的任何描述相同,我想检查表“Car”。如果没有,则应将其添加到表中。如果有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%或更多,我想将帖子添加到数据库。但有没有办法让我不在PHP代码中执行此操作,而是在SQL问题中执行此操作?
答案 0 :(得分:1)
答案 1 :(得分:0)
例如,如果您有一个名为用户的表格,您可以执行以下操作:
$where = $db->query("SELECT * FROM users WHERE username LIKE '%mo%'")->rowCount();
$all = $db->query("SELECT * FROM users")->rowCount();
$percentage = ($where / $all) * 100;