Ok ho una tabella con una chiave indicizzata e un campo non indicizzato. Devo trovare tutti i record con un certo valore e restituire la riga. Vorrei sapere se posso ordinare in base a più valori.
Esempio:
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: vorrebbe che i risultati fossero ordinati in questo modo, 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'
Quindi i risultati sarebbero:
id x_field
-- -----
127 f
133 p
134 p
135 i
123 a
124 a
125 a
129 a
La sintassi è valida ma quando eseguo la query non restituisce mai alcun risultato, anche se la limito a 1 record. C'è un altro modo per farlo?
Pensa al campo x come ai risultati del test e ho bisogno di convalidare tutti i record che rientrano nella condizione. Volevo ordinare i risultati del test in base a valori non riusciti, valori passati. Quindi ho potuto convalidare prima i valori non riusciti e poi i valori passati usando ORDER BY.
Cosa non posso fare:
- GROUP BY, poiché ho bisogno di restituire i valori record specifici
- WHERE x_field IN ('f', 'p', 'i', 'a'), ho bisogno di tutti i valori poiché sto cercando di utilizzare una query per diversi test di convalida. E i valori x_field non sono nell'ordine DESC / ASC
Dopo aver scritto questa domanda sto iniziando a pensare che devo ripensare a questo, LOL!