Ok, mam tabelę z indeksowanym kluczem i nieindeksowanym polem. Muszę znaleźć wszystkie rekordy o określonej wartości i zwrócić wiersz. Chciałbym wiedzieć, czy mogę zamawiać według wielu wartości.
Przykład:
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: chciałby, aby wyniki były uporządkowane w ten sposób, 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'
Wyniki byłyby następujące:
id x_field
-- -----
127 f
133 p
134 p
135 i
123 a
124 a
125 a
129 a
Składnia jest prawidłowa, ale kiedy wykonuję zapytanie, nigdy nie zwraca żadnych wyników, nawet jeśli ograniczę je do 1 rekordu. Czy jest inny sposób, aby to zrobić?
Pomyśl o x_field jako o wynikach testu i muszę zweryfikować wszystkie rekordy, które spełniają warunek. Chciałem uporządkować wyniki testów według wartości nieudanych, wartości przekazanych. Mogłem więc najpierw zweryfikować błędne wartości, a następnie przekazane wartości za pomocą ORDER BY.
Czego nie mogę zrobić:
- GROUP BY, ponieważ muszę zwrócić określone wartości rekordów
- WHERE x_field IN ('f', 'p', 'i', 'a'), potrzebuję wszystkich wartości, ponieważ próbuję użyć jednego zapytania do kilku testów walidacyjnych. A wartości x_field nie są w kolejności DESC / ASC
Po napisaniu tego pytania zaczynam myśleć, że muszę to przemyśleć, LOL!