我試圖弄清楚如何通過距離某個值的距離來排序,優先級大於或小於。用簡單的查詢可能無法實現,但我想我會詢問。說我有一個表命名爲「分數」:MySQL - 按距離排序的值優先給予更高的值
Score
-----
24
27
23
29
我想找到最接近值的得分爲25,尋找低於25
嘗試下面的查詢將返回前25以上的最接近的值返回24, 23, 27, 29
:
SELECT score FROM scores ORDER BY ABS(score - 25);
有說回報最接近得分超過25首,如果沒有發現,往下看的一種簡單的方法?
我敢肯定這是可能的子查詢,但我的實際查詢是複雜得多,有多個連接和其他標準,所以我擔心使用聯合或子查詢的開銷(以及可讀性查詢)。如果可能的話,希望找到最簡單的方法。
編輯:
我想確保我發現上面25所有得分訴諸任何低於25
你將不得不提供關於邏輯的詳細信息。分數是否比低於1的分數高2分?或者更高3比更低1?換句話說,結果集應該顯示什麼樣的評分模式? –
@Jim ..查看編輯...我想確保我找到的所有分數高於25,然後求助於低於25的任何值。 – Mike
因此, 300分應該在24分之前出現? – Interrobang