我的全文查询以:
结尾 ORDER BY RELEVANCE DESC, CLICK_RATE DESC
我可以为order by
中的列赋予权重吗?可能0.3
与相关性和0.7
到click_rate
?
就目前而言,即使我转换它们,结果也不尽如人意。
作为替代方案,如何将3
个结果按CLICK RATE
排序,其余按relevance
排序。
答案 0 :(得分:9)
这应该有效
ORDER BY (.3 * RELEVANCE) + (.7 * CLICK_RATE) DESC
从评论中更新
按top_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
答案 1 :(得分:-2)
您可以随时使用WHERE。
试试这个: 何处相关> 0.3和相关性< 0.7相关的DESC命令,CLICK_RATE DESC