Ich hoffe, die in der folgenden Abfrage zurückgegebenen Elemente nach der Reihenfolge zu sortieren, in der sie in die Funktion IN () eingegeben wurden .
EINGANG:
SELECT id, name FROM mytable WHERE name IN ('B', 'A', 'D', 'E', 'C');
AUSGABE:
| id | name |
^--------^---------^
| 5 | B |
| 6 | B |
| 1 | D |
| 15 | E |
| 17 | E |
| 9 | C |
| 18 | C |
Irgendwelche Ideen?
FIELD(letter, 'A', 'C')
die Liste gibt zuerst Einträge mit dem Buchstaben B zurück (unter der Annahme einer Reihe von Datensätzen mitA | B | C
Werten). Um dies zu vermeiden, kehren Sie die Liste um und verwenden Sie DESC, dFIELD(letter, 'C', 'A') DESC
. H.Eine weitere Option von hier: http://dev.mysql.com/doc/refman/5.0/en/sorting-rows.html
Also in deinem Fall (ungetestet) wäre
Je nachdem, was du tust, fand ich es etwas schrullig, habe es aber immer zum Laufen gebracht, nachdem ich ein bisschen damit gespielt habe.
quelle
Versuchen Sie etwas wie
quelle
Möglicherweise kann dies jemandem helfen (p_CustomerId wird in SP übergeben):
Beschreibung: Ich möchte die Kontoliste anzeigen. Hier übergebe ich eine Kunden-ID in sp. Jetzt werden die Kontonamen mit den mit diesen Kunden verknüpften Konten oben angezeigt, gefolgt von anderen Konten in alphabetischer Reihenfolge.
quelle
Sie benötigen eine weitere Spalte (numerisch) in Ihrer Tabelle, in der Sie die Sortierreihenfolge angeben. Die IN-Klausel funktioniert auf diese Weise nicht.
quelle
benutz einfach
Vermeiden Sie die Situation wie
endet mit einer ungeordneten Ergebniszeile: 1 und 11 alternativ
quelle