我想得到一个结果并根据最相关的
。这是一个mysql表

id     sentence
1      website download free idm here
2      get a free idmas5 from here
3      check out this idm
4      Here is other softwares

这是密码。
<?php
$word1 = 'download';
$word2 = 'idm';
mysql_query("SELECT * FROM phrase WHERE MATCH(sentence)
AGAINST('+$word1 +$word2' IN BOOLEAN MODE"))
//above query does not work

我想从MATCH.....AGAINST中得到结果,然后对结果进行排序。
要求的结果。
1   website download free idm here
3   check out this idm
2   get a free idmas5 from here

因为download和idm都出现在第一个id中,所以它位于顶部,而在第三个id中,只有idm出现在第二个位置。
IDMAS5是从IDM开始的,所以它在第三个位置。在最后一个ID中没有匹配的单词,所以它不能显示。
我用的是MATCH......AGAINST我觉得这是有好处的。

最佳答案

mysql_query()返回SELECT上的结果集。所以你需要这样分配结果

$result=mysql_query("SELECT * FROM phrase WHERE MATCH(sentence)
AGAINST('+download +idm' IN BOOLEAN MODE"))

然后使用mysql_fetch_array()函数检索结果
while ($row = mysql_fetch_array($result)) {
    printf("ID: %s  SENTENCE: %s", $row[0], $row[1]);
}

10-05 23:01