我試圖弄清楚是否有辦法執行查詢來按某一行的數值排序,但是在設置的條件下它會對結果進行「雙重過濾」(可能是不正確的詞)並重新排列它們。可以使用SQL ORDER BY邏輯雙重過濾嗎?
的一個很好的例子如下:
的遊戲有一個記分板/排行榜系統中,它顯示排名靠前的選手,但是當多個玩傢俱有相同的技能水平,它將通過對他們進行排名的贏的數量。
因此,例如我在我的數據庫中的以下信息:
+----+--------+------+--------+
| id | player | wins | rating |
+----+--------+------+--------+
| 1 | Tom | 12 | 1300 |
| 2 | Bob | 18 | 1300 |
| 3 | Jim | 7 | 1284 |
| 4 | Ed | 2 | 1312 |
+----+--------+------+--------+
標準order by 'rating'
查詢將展示他們在此爲了
+----+--------+------+--------+
| id | player | wins | rating |
+----+--------+------+--------+
| 4 | Ed | 2 | 1312 |
| 1 | Tom | 12 | 1300 |
| 2 | Bob | 18 | 1300 |
| 3 | Jim | 7 | 1284 |
+----+--------+------+--------+
然而,由於Tom
和Bob
具有相同我想按順序排列他們,所以桌子看起來像這樣:
+----+--------+------+--------+
| id | player | wins | rating |
+----+--------+------+--------+
| 4 | Ed | 2 | 1312 |
| 2 | Bob | 18 | 1300 |
| 1 | Tom | 12 | 1300 |
| 3 | Jim | 7 | 1284 |
+----+--------+------+--------+
任何想法?我知道我可以通過運行單個查詢來完成此操作,然後爲每個具有相同評級的人創建一個2D數組,然後針對每個評級(Where rating =?)運行查詢,但似乎高度冗餘。
等級DESC,勝DESC?!?!? – Strawberry
你可以有多個由''''分隔的'by by'子句,就像'order by desc desc,wins desc'一樣' – lared
爲什麼你不向我們展示你的查詢?如lared所說,你可以使用多個列進行排序! –