如何在执行以下查询时计算匹配数:
编辑:对不起,我认为你们会理解这个错误的解释。 这是一个更新。$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);
然后,查询将搜索“whatpeoplelike”中的每个关键字 我想知道的是如何找出与这些词有多少匹配 所以我们可以说有三个句子就像人一样:
第一个'我喜欢苹果和橘子' 匹配的数量将是5
第二个'我喜欢苹果和菠萝' 比赛的数量将是4
第三句'我喜欢苹果' 匹配数量为3
我想知道如何能够再次找出并计算比赛数量,对不起的解释表示遗憾,并提前致谢!
答案 0 :(得分:0)
如果您想计算与您的查询匹配的行数,或者更确切地说是数组的输入,那么只需使用:
"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}'";
}
我希望那就是你所寻找的......