MySql根据相关性和另一列顺序进行匹配
我想按相关性排序一个MySql根据相关性和另一列顺序进行匹配,mysql,sql,match-against,Mysql,Sql,Match Against,我想按相关性排序一个匹配搜索,然后按列出时间列排序。相关性搜索非常有效,但当我添加listing_time列时,搜索结果看起来像是随机的 这是我的sql: SELECT title, listing_time, match(description) against('+clip' in boolean mode) as rel FROM product order by rel desc 这将在0.2秒内产生86个结果,所有结果都具有相关性1。太好了 但是当我尝试用额外的cloumn进行相同的
匹配
搜索,然后按列出时间
列排序。相关性搜索非常有效,但当我添加listing_time列时,搜索结果看起来像是随机的
这是我的sql
:
SELECT title, listing_time, match(description) against('+clip' in boolean mode) as rel
FROM product order by rel desc
这将在0.2秒内产生86个结果,所有结果都具有相关性1。太好了
但是当我尝试用额外的cloumn进行相同的搜索时
FROM product order by rel, listing_time desc
我在27秒内得到1000个结果,它们的相关性无处不在。糟透了
那么我如何正确地做到这一点呢?我想要相关的结果,并且我想要它们按列表时间排序。我猜您希望
按顺序排序是:
order by rel desc, listing_time desc
-------------^
asc
和desc
适用于每个键
您的问题中没有任何内容表明这两个结果集是不同的,因此我猜测查询不完全相同(例如,由于join
或where
子句).它也可以是TOP X
或仅获取前X行
或LIMIT X
只需更改顺序即可得到不同的结果。@Hogan。MySQL不支持这两种构造。MySQL中使用的版本是limit
,位于orderby
子句之后。建议不会改变结果。除了将rel desc更改为rel desc之外,它是相同的查询,列出了\u time desc。