我想得到一个结果并根据最相关的
。这是一个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]);
}