cal*_*ant 6 mysql sql sql-order-by
我有一个全文查询,以:
ORDER BY RELEVANCE DESC, CLICK_RATE DESC
Run Code Online (Sandbox Code Playgroud)
我能否按顺序给订单加权?也许order by到的相关性和0.3对0.7?
就像现在的情况一样,即使我改变它们,结果也不尽如人意.
作为替代方案,如何将最高click_rate结果排序,3其余按相关性排序.
这应该工作
ORDER BY (.3 * RELEVANCE) + (.7 * CLICK_RATE) DESC
从评论更新
按click_rate排序前3个结果,其余按相关性排序
您需要首先使用子查询识别前3个并执行排序
SELECT test.id,
test.relevance,
test.click_rate,
top_3_click_rate.id t3_id,
top_3_click_rate.click_rate t3_click_rate
FROM test
LEFT JOIN (SELECT id,
click_rate
FROM test
ORDER BY click_rate DESC
LIMIT 3) top_3_click_rate
ON test.id = top_3_click_rate.id
ORDER BY top_3_click_rate.click_rate DESC,
test.relevance DESC
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2529 次 |
| 最近记录: |