获取语句与mysql匹配的百分比

获取语句与mysql匹配的百分比,mysql,where,percentage,Mysql,Where,Percentage,有没有可能在SQL问题中得到where语句匹配正确的百分比 类似PHP函数similiar\u text()的内容 我的想法是,在SQL问题中,检查where语句是否匹配超过95%,然后应该继续 这可能吗?如果是,我该怎么办 编辑: 表:汽车 id type description 1 Toyota Nice car that runs very fast and have a big engine. 然后我得到了包含以下内容的字符串 $description='非常非常好的车,跑得非常快,发

有没有可能在SQL问题中得到where语句匹配正确的百分比

类似PHP函数similiar\u text()的内容

我的想法是,在SQL问题中,检查where语句是否匹配超过95%,然后应该继续

这可能吗?如果是,我该怎么办

编辑:

表:汽车

id type description
1 Toyota Nice car that runs very fast and have a big engine.
然后我得到了包含以下内容的字符串 $description='非常非常好的车,跑得非常快,发动机非常大。”

我想检查表“Car”中是否有与我的$description字符串中的任何现有描述相同的95%的描述。如果没有,则应将其添加到表中。如果有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++;
}
$where = $db->query("SELECT * FROM users WHERE username LIKE '%mo%'")->rowCount();
$all = $db->query("SELECT * FROM users")->rowCount();
$percentage = ($where / $all) * 100;
$query=$this->db->query('SELECT*FROM table
比赛地点(标题)
反对(“自然语言模式下的测试文本”);
$i=1;
foreach($query->result()作为$row)
{
回音$i';
echo$行->标题;
回声“
”; $i++; }

上面的代码给了我“最匹配的”“结果在前,结果在后,依此类推。现在我把它打印出来。我看到了一个解决方案,在打印出的第一个匹配项上使用PHP函数类似于_文本,并获得匹配项的百分比。之后,我可以决定是否匹配95%或更多,我想添加后的数据库。但是有没有一种方法可以让我在PHP代码中不这样做,而直接在SQL问题中这样做呢?

例如,如果您有一个名为users的表,您可以这样做:

$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++;
}
$where = $db->query("SELECT * FROM users WHERE username LIKE '%mo%'")->rowCount();
$all = $db->query("SELECT * FROM users")->rowCount();
$percentage = ($where / $all) * 100;

你需要做的是使用全文搜索。文件是

使用常规SQL无法真正实现您想要的功能。SQL语言没有支持详细文本分析的原语


全文搜索有两种模式。您可能需要自然语言版本。

您可以提供一些示例数据和预期结果,以澄清您的要求吗?编辑了我的帖子,如果您不理解,请告诉我,我将尝试再次解释。谢谢您的回答。我现在已经阅读了全文搜索。我在我的帖子中添加了一个EDIT2,还有一个后续问题。如果你能回答这个问题或给我指出正确的方向,我将非常高兴。@JohnF。如果你的心已经设定在这个“95%”匹配上,那么你可能必须在应用程序中手动进行匹配。另一方面,
match-On
返回一个匹配值,您可能只需要设置一个阈值,然后完全在数据库中执行。