2016-09-20 6 views
0

Ich bin mir nicht sicher, ob der Titel viel Sinn ergeben hat, aber ich werde das genauer erklären.MySQL sortiere Daten nach spezifischen Dateneinträgen

So habe ich eine Tabelle mit dem Namen ‚Mitglieder‘, die eine Liste von Reihen hat (Kol, Maj, Cpt) unter dem Feldnamen ‚Rang‘

Ich möchte die Daten von der Rangname aus gehen, um zu bestellen höchster Rang (Col) bis niedrigster Rang (Rct).

Ich werde einen Screenshot meiner Tabelle hinzufügen, für den Fall, dass ich keinen Sinn habe.

Table screenshot

+3

Persönlich würde ich eine neue [Ränge] Tabelle hinzufügen, fügen Sie die 3 String-Werte und eine Ganzzahl OrderValue Spalte, richten Sie eine Schlüsselbeziehung, JOIN in Ihrer Abfrage und Reihenfolge von Rank.OrderValue –

Antwort

0

denke ich, Alex K.-Lösung die beste ist. Sie suchen nach etwas wie

select * from members order by rank desc; Dies wird sie alphabetisch absteigend zurückgeben. Wenn Sie einen Rang Tabelle definiert wie Alex schlägt vor, Sie könnten ein tun:

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

In dieser Lösung die rank_table wie folgt aussieht:

Col | 2

Maj | 1

Kappe | 0

+0

Vielen Dank für die Antwort. Also würde ich eine neue Tabelle namens Ränge erstellen und diese Tabelle mit allen Rängen ausfüllen? – JoshWalki

+0

Es hängt davon ab, was Sie tun möchten. Wenn Sie sie nur alphabetisch sortieren möchten, können Sie mit Ihrer Mitglieder-Tabelle fortfahren. Wenn Sie sie nach dem tatsächlichen Wert ihres Ranges sortieren wollen, dann würde ich die Rangliste erstellen und sie mit dem Rang und dem "Wert" dieses Ranges füllen. Zum Beispiel, Private ist der erste Rang, den Sie erreichen können. Captain ist der zweite Rang, den Sie erreichen können. Dies würde Ihnen erlauben, Ränge zu benennen, was auch immer Sie wollten und sortieren Sie sie in der Reihenfolge des Wertes. Private hat einen Wert von 1, Captain hat einen Wert von 2. – BenG

+0

Wenn ich ihnen einen Wert geben sollte, damit ich ihnen die richtige Reihenfolge geben kann, wie stelle ich sie ein? – JoshWalki