Php 如何在执行查询时计算匹配数?选择喜欢的位置?

Php 如何在执行查询时计算匹配数?选择喜欢的位置?,php,mysql,Php,Mysql,执行如下查询时,如何计算匹配数: 编辑:对不起,我想你们会理解的。 这里有一个更新 $thingsilike = explode(" ", $search); foreach($thingsilike as $things){ $array[] = "keywords LIKE '%$things%'"; } 假设下面的句子“我喜欢苹果和桔子”被放入数组中。数组将如下所示 $array('I', 'like', 'apples', 'and', 'oranges'); query = ("

执行如下查询时,如何计算匹配数:

编辑:对不起,我想你们会理解的。 这里有一个更新

$thingsilike = explode(" ", $search); 
foreach($thingsilike as $things){
$array[] = "keywords LIKE '%$things%'";
}
假设下面的句子“我喜欢苹果和桔子”被放入数组中。数组将如下所示

$array('I', 'like', 'apples', 'and', 'oranges');

query = ("SELECT * FROM row WHERE thingspeoplelike LIKE .implode(' OR', $array);
然后,查询将搜索“thingspeoplelike”中的每个关键字 我想知道的是如何找出有多少匹配词 让我们假设有三句话是这样的:

第一个“我喜欢苹果和桔子” 有5个匹配项

第二个“我喜欢苹果和菠萝” 比赛的数量是4场

第三句“我喜欢苹果” 匹配的数量将为3


我想知道我如何能找到和计算比赛的数量再次抱歉的错误解释和提前感谢各位

如果要计算与查询或数组输入匹配的行数,只需使用:

"SELECT COUNT(*) FROM row WHERE things LIKE ".implode(' OR ', $array)
问题澄清后更新:

/* split the input sentence */
$thingsilike = explode(" ", $search);

$result = /* Get all sentences (thingspeoplelike) from row and store it in $result */

foreach($result as $sentence) {

    $count = 0;
    $parts = explode(" ", $sentence);

    foreach($thingsilike as $keyword) {

        if(in_array($keyword, $parts) == true) {

            $count = $count + 1;
        }
    }

    echo "Found {$count} matches for result '{$sentence}'";
}

我希望这就是你想要的…

发布更多的PHP代码-这就是
行数
的目的:你所说的
内爆('OR',$array)
,,你到底想做什么?user3188287想把$array的元素和'OR'作为分隔符组合起来,像这样使用它clause@scrowler抱歉,错误的解释发布了更多代码和更好的解释。同意。这绝对是完全不同的。我不确定你是否能用更少的努力做到这一点。可能像solr这样的反向搜索索引是实现目标的更好选择。这个解决方案有什么问题?如果还有另一个目标,那么这个问题就必须更精确地定义。