Php 搜索标签并按排名排序

Php 搜索标签并按排名排序,php,mysql,phpmyadmin,Php,Mysql,Phpmyadmin,tags表有三列web,tags,rank 此表已启用全文搜索 我能够通过标签搜索并通过此查询获取网站列表 SELECT * FROM tags-table WHERE MATCH (tags) AGAINST ('search,searchengine,search,web' IN BOOLEAN MODE) 但我想按等级排列结果。我该怎么做 我也尝试过这个,但它提供了一些其他的东西 SELECT * FROM tags-table WHERE MATCH (tags) AGAINST ('

tags表
有三列
web,tags,rank

此表已启用全文搜索

我能够通过标签搜索并通过此查询获取网站列表

SELECT * FROM tags-table WHERE MATCH (tags) AGAINST ('search,searchengine,search,web' IN BOOLEAN MODE)
但我想按等级排列结果。我该怎么做

我也尝试过这个,但它提供了一些其他的东西

SELECT * FROM tags-table WHERE MATCH (tags) AGAINST ('search,searchengine,search,web' IN BOOLEAN MODE) ORDER BY ABS(rank) 
按排名列中填写了各个站点的排名。例如,
google
获得了
排名1
facebook
获得了
rank2
yahoo
获得了
排名4
,与其他网站类似

tags-table




   web          |    tags                                       |     rank

-----------------------------------------------------------------------------------
    google.com   |search,google,searchengine,engine,web          |     1
    facebook.com |facebook,social,networking,friends,community   |     2
    youtube.com  |video,youtube,videos,entertainment,media       |     3
    yahoo.com    |yahoo,search,email,news,searchengine           |     4

没有神奇的列
rank
。但您可以这样计算相关性(或您称之为排名):

SELECT 
    *,
    MATCH (tags) AGAINST ('search searchengine search web') AS relevance
FROM 
    tags-table 
WHERE 
    MATCH (tags) AGAINST ('+search +searchengine +search +web' IN BOOLEAN MODE) 
ORDER BY 
    relevance DESC

请注意,与匹配的第一个
不是在布尔模式下运行的
。这是因为在布尔模式下
几乎总是返回1。

有一个秩列,该列中提到秩。例如,谷歌排名第一,facebook排名第二等等。。。