用php查询mysql匹配关键字,并根据最匹配的关键字进行排序

nbysray5  于 2021-06-18  发布在  Mysql
关注(0)|答案(0)|浏览(232)

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作为列类型吗?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题