我有一个关于歌曲标题的数据库。每个歌曲标题都有一个指定的整数分数。分数越高,它在我的网站上排名就越高。
因此,如果"Lady扑克脸“的得分为23039,而"Eminem - Not”的得分为13400,Lady将高于Eminem。
当然,这是通过一个简单的顺序来完成的。
然而,我的网站也有一个搜索功能,人们可以输入关键字短语来返回歌曲标题列表。我对()查询执行了一个MATCH(),如下所示:
方法#1
SELECT * FROM links MATCH(songtitle) AGAINST({the keyword}) LIMIT 5';这是可行的,但我想显示这5个结果的顺序,他们的分数。但是,如果我执行此查询,则:
方法#2
SELECT * FROM links MATCH(songtitle) AGAINST({the keyword}) ORDER BY score DESC LIMIT 5';那么关联的顺序就完全失去了。我想按分数和相关性来排序返回的结果。
以此示例数据集和场景为例:
数据集:
song title | score
pink - sober | 2002
pink - funhouse | 2001
pink floyd - high hopes | 2000
pink floyd - on the run | 1999
pink floyd - brain damage | 1998
pink floyd - money | 1997
pink floyd - time | 1996场景:
期望的结果:
懂得我的意思吗?如果你需要澄清,请告诉我!
戴夫
发布于 2010-07-31 23:42:01
看起来你可能能从比赛中得到“相关性”--看看此链接。考虑到这一点,你可以先根据相关性排序,然后再按分数排序。
https://stackoverflow.com/questions/3380185
复制相似问题