2016-09-20 74 views
0

我不太確定標題是否有意義,但我會更詳細地解釋。MySQL按特定數據條目對數據進行排序

所以我有一個表命名爲「成員」具有字段名「排名」下的行列(上校,少校,CPT)的列表

我想通過等級名稱從去對數據進行排序最高排名(Col)到最低排名(Rct)。

我將包含我的桌面截圖,以防萬一我無意義。

Table screenshot

+3

就我個人而言,我會添加一個新的[Ranks]表,添加3個字符串值和一個整數OrderValue列,設置一個關鍵的關係,加入您的查詢和Rank.OrderValue秩序 –

回答

0

我認爲亞歷克斯K.的解決方案是最好的。您正在尋找像

select * from members order by rank desc;這將按字母順序降序返回它們。如果你定義的級別表像亞歷克斯建議你可以做:

select t.* 
from members t join rank_table rt on t.rankname = rt.rankname 
order by rt.rankvalue desc; 

在這個解決方案中rank_table樣子:

山口| 2

主| 1

第| 0

+0

感謝您的答覆。所以我會創建一個名爲行列的新表,然後在所有行列中填入該表。 – JoshWalki

+0

這取決於你想要做什麼。如果你只是想按字母順序排序,那麼你可以繼續使用你的會員表。如果你想按照他們的等級的實際值對他們進行排序,那麼我會創建等級表並填充等級和該等級的「價值」。 例如,Private是您可以實現的第一級別。隊長是你可以實現的第二等級。 這將允許您命名任何你想要的排名並按價值排序。 Private的值爲1,Captain的值爲2. – BenG

+0

如果我要給他們一個值,那麼我可以按他們的順序排列順序,我該如何設置它? – JoshWalki