MySQL-Abfrage mehrfach sortieren

styler2go

Erfahrenes Mitglied
Hallo,

ich muss nochmal zu einem Thema ein Thread aufmachen.
Und zwar möchte ich eine MySQL ausgabe sortiert nach einem Array ausgeben.

Das Array sieht dabei so in etwa aus:

Code:
Array
(
    [Techno] => 5
    [Rap] => 5
    [Metal] => 9
    [Rock] => 12

)
In dem Fall soll aus der Datenbank zuerst alles mit Rock, dann alles mit Metal, und dann alles mit Techno und Rap ausgegeben werden. Wie ist das möglich? mit einer stinknormalen Abfrage wird das ja sicher nicht gehen, oder?
 
Ja das ist klar aber, wie soll ich das eben nach dem Array sortieren? Dazu muss ich doch erstmal wissen was das größte ist usw.?
 
Sorry, ich kann Dir nicht ganz folgen.

Ist es so richtig? Zuerst mit GROUP BY / COUNT gruppieren und zählen, damit dann die Reihenfolge der Lieder aus den Kategorien (kleinste Kat.Count zuerst) aufzählen?

mfg chmee
 
Ich kann dir ebenfalls gerade nicht folgen. Also nochmal ^^

Ich habe eine Datenbank mit Liedern. In dieser Datenabnk hat jedes Lied 3 Genres zugeordnet.
Code:
id | name | genre2 | genre2 | genre3
--------------------------------------------------
1 | Bla   | Techno |  Rap   |Dancehall

[...]

Diese sollen jetzt, je nachdem welches im oben gezeigten Array stehende Genre die höchste Nummer hat, sortiert werden.
Dazu muss uich aus dem Array ja zuerst die höchste Zahl finden um das zugehörige Genre bestimmen zu können. Oder sehe ich das grad ganz falsch?
 
Zuletzt bearbeitet:
goldmember willkommen Hmpf.. Ich hoffe einfach mal, dass es jemand Anders besser versteht.. :D Tatsächlich verstehe ich den Sinn nicht ganz, oder anders, so eine Datenbankstruktur muß normalisiert werden, damit es einfacher wird..

(Du hast zweimal genre2, das ist falsch, oder?)

(1) Wenn Du lediglich nach dem genre1 sortieren willst, dann ist ORDER BY genre1 das Richtige, aber das ist es nicht, nicht wahr?
(2) Wenn genre1 höhere Priorität als genre2 genießt, dann würde ich es -Stichwort Normalisierung- eh über weitere Tabellen machen und dort über einen Priowert die Wichtigkeit einstufen. Die Vorteile liegen auf der Hand. Dein Suchmuster ist dann für Tabelle 3, welche mit Tabelle1 und Tabelle 2 lediglich zur Ausgabe der liedid und genreid verknüpft werden muss.

Code:
Tabelle 1 : tLieder

id * interpret * lied
---+-----------+---------
1  *   Alf     +  Melmac Party
..


Tabelle 2 : tGenres

id * genre
---+----------
1  *   Techno      
2  *   Rock
..


Tabelle 3 : tCatSong

id *  liedid  *  genreid  * prio
---+----------+-----------+------
1  *   1      +  1        +  5
2  *   1      +  2        +  4
..

mfg chmee
 
(1) Genau, das meine ich nicht...
(2) Auch eine möglichkeit...

Mir ist grade eine idee gekommen die ich testen werde und mich dann wieder melden werde. Wenn jmd anderes weitere Vorschläge hat, bin immer offen.
 
Gut, das hab ich nun alles, nun muss ich noch das Array ausgeben.. aber das kireg ich allein hin! Danke an dich dass du geholfen hast. *Danke button drück*
 
Zurück