Хорошо, у меня есть таблица с индексированным ключом и неиндексированным полем. Мне нужно найти все записи с определенным значением и вернуть строку. Я хотел бы знать, могу ли я заказать по нескольким значениям.
Пример:
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
псевдо: хотел бы, чтобы результаты были упорядочены следующим образом, 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'
Итак, результаты будут такими:
id x_field
-- -----
127 f
133 p
134 p
135 i
123 a
124 a
125 a
129 a
Синтаксис действителен, но когда я выполняю запрос, он никогда не возвращает никаких результатов, даже если я ограничиваю его одной записью. Есть ли другой способ сделать это?
Думайте о x_field как о результатах теста, и мне нужно проверить все записи, попадающие в это условие. Я хотел упорядочить результаты тестов по ошибочным значениям, пройденным значениям. Поэтому я мог сначала проверить ошибочные значения, а затем переданные значения, используя ORDER BY.
Что я не могу сделать:
- GROUP BY, так как мне нужно вернуть определенные значения записи
- WHERE x_field IN ('f', 'p', 'i', 'a'), мне нужны все значения, поскольку я пытаюсь использовать один запрос для нескольких проверочных тестов. И значения x_field не в порядке DESC / ASC
Написав этот вопрос, я начинаю думать, что мне нужно переосмыслить это, LOL!