MySQL spezifiziert die genaue Reihenfolge mit WHERE 'id' IN (...)

8

Gibt es eine einfache Möglichkeit, die MySQL-Ergebnisse durch WHERE id IN (...) -Klausel zu bestellen? Beispiel:

%Vor%

zurück

%Vor%

und auch

%Vor%

zurück

%Vor%

Update: Um genauer zu sein, möchte ich vermeiden, dass die Daten in Klammern in WHERE articles.id IN (4, 2, 5, 9, 3) manipuliert werden, da diese IDs dynamisch und automatisch geordnet sind.

    
Gray Fox 02.06.2010, 13:21
quelle

4 Antworten

14

Ja, irgendwie:

%Vor%

aber das ist Nicht-Standard-SQL und riecht ein bisschen.

    
bobince 02.06.2010, 13:41
quelle
3

Das funktioniert für mich: ORDER BY FIELD (Produkt.id, 4,9,8,5,3,11,24,16)

    
amstegraf 27.11.2012 12:05
quelle
1

MySQL sortiert nur mit ORDER BY. Aus diesem Grund ist es nicht ungewöhnlich, dass Datenbanktabellen eine Ordinalitätsspalte haben.

%Vor%     
Peter Bailey 02.06.2010 13:31
quelle
0

Ich glaube nicht, dass Sie das tun können. Es gibt keine "explizite" Bestellung. Die Anweisung "in" sagt Ihnen einfach, was abgerufen werden soll und hat keine Informationen über die Reihenfolge.

Da die Beispiele, die Sie angegeben haben, keine offensichtliche Reihenfolge haben, ist es am besten, dies in Code zu behandeln, nachdem das Ergebnis zurückgegeben wurde.

    
jvenema 02.06.2010 13:29
quelle

Tags und Links