我有結尾的全文查詢:如何在mysql中權衡'ORDER BY'?
ORDER BY RELEVANCE DESC, CLICK_RATE DESC
我能給重量至的訂單?也許0.3
與相關性和0.7
到click_rate
?
現在情況正在改變,即使我切換它們,結果也不令人滿意。
作爲一種替代方法,頂部3
結果按CLICK RATE
排序,其餘按照相關性排序。
我有結尾的全文查詢:如何在mysql中權衡'ORDER BY'?
ORDER BY RELEVANCE DESC, CLICK_RATE DESC
我能給重量至的訂單?也許0.3
與相關性和0.7
到click_rate
?
現在情況正在改變,即使我切換它們,結果也不令人滿意。
作爲一種替代方法,頂部3
結果按CLICK RATE
排序,其餘按照相關性排序。
這應該工作
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
您可以隨時使用WHERE。
試試這個: WHERE相關性> 0.3和相關< 0.7 ORDER BY DESC相關性,CLICK_RATE DESC
您的答案不適用 - 請重新閱讀該問題。 – belwood 2012-04-23 19:59:24
這更有意義,所以我刪除我的答案。 +1 !!! – RolandoMySQLDBA 2012-04-23 19:48:35
相關性字段爲0-1,click_rate字段爲0.1以上...這仍然有效嗎?我真的很感謝你的回答,ty – califmerchant 2012-04-23 20:01:48
@califmerchant我不知道爲什麼我認爲轉換是一個問題,但不是。這就是說,因爲相關性字段比click_rate大一個數量級,您可能會發現它壓倒了click_rate。你可能需要使用數字來找到你喜歡的值 – 2012-04-23 20:20:20