tbl index.tbl,如下所示:
id | Url | Description
0 | http://cheapnames.it | Register Domain Names from $1 to $25.
1 | http://lownames.usa | Get Domain Names from $1 to $20.
2 | http://lowcostnames.uk | Register Domains for as low as $1.
3 | http://getdoman.biz | Register Names from between $1 to $25.
现在,假设您搜索了“注册域名”。
我希望查询根据最匹配的关键字(匹配数)对行进行排序。所以,从我们的例子来看,排名应该是这样的:
0| http://cheapnames.it | Register Domain Names from $1 to $25.
1| http://lownames.usa | Get Domain Names from $1 to $20.
3| http://getdoman.biz | Register Names from between $1 to $25.
2| http://lowcostnames.uk | Register Domains for as low as $1.
注意,id=0有3个kws匹配项。所以在上面。
id=1和id=3都有2个匹配项。因此第二和第三。在这两个,排名的优先权是基于“id”(链接提交id)。
当然,最后一个匹配的行在底部。
问题:
如果像我描述的那样进行查询和排序,您将如何编写sql查询?
这里的sql查询是否足以像前面描述的那样进行排名显示,或者必须让php也进行排名显示?或者,也许sql根本不应该做排名显示,而应该做php?在这种情况下,我可以看看php示例代码吗?
到目前为止,我没有得到什么好处:
$query = "SELECT * FROM notices WHERE description = register AND Domain AND
Names";
请显示代码样本,因为我的样本不适用于“最匹配排名”。
记住链接描述会像你在搜索引擎结果页(serp)中看到的那样受到限制,我应该选择varchar(255)或者tinytext,或者mysql中的text或者fulltext作为列类型吗?
暂无答案!
目前还没有任何答案,快来回答吧!