Ok, ich habe eine Tabelle mit einem indizierten Schlüssel und einem nicht indizierten Feld. Ich muss alle Datensätze mit einem bestimmten Wert finden und die Zeile zurückgeben. Ich würde gerne wissen, ob ich nach mehreren Werten bestellen kann.
Beispiel:
id x_field
-- -----
123 a
124 a
125 a
126 b
127 f
128 b
129 a
130 x
131 x
132 b
133 p
134 p
135 i
pseudo: möchte, dass die Ergebnisse so geordnet werden, where ORDER BY x_field = 'f', 'p', 'i', 'a'
SELECT *
FROM table
WHERE id NOT IN (126)
ORDER BY x_field 'f', 'p', 'i', 'a'
Das Ergebnis wäre also:
id x_field
-- -----
127 f
133 p
134 p
135 i
123 a
124 a
125 a
129 a
Die Syntax ist gültig, aber wenn ich die Abfrage ausführe, werden keine Ergebnisse zurückgegeben, selbst wenn ich sie auf 1 Datensatz beschränke. Gibt es einen anderen Weg, dies zu tun?
Stellen Sie sich das x_field als Testergebnis vor und ich muss alle Datensätze validieren, die in den Zustand fallen. Ich wollte die Testergebnisse nach fehlgeschlagenen Werten und übergebenen Werten ordnen. So konnte ich zuerst die fehlgeschlagenen Werte und dann die übergebenen Werte mit ORDER BY validieren.
Was ich nicht kann:
- GROUP BY, da ich die spezifischen Datensatzwerte zurückgeben muss
- WO x_field IN ('f', 'p', 'i', 'a'), ich benötige alle Werte, da ich versuche, eine Abfrage für mehrere Validierungstests zu verwenden. Und x_field-Werte sind nicht in DESC / ASC-Reihenfolge
Nachdem ich diese Frage geschrieben habe, denke ich, dass ich das überdenken muss, LOL!