Что мне нужно сделать, это заказать их из класса, лабораторий, лекционных залов и аудиторий. То, что мне тогда нужно сделать, - это упорядочить их по их идентификатору. Поэтому для классных комнат я начинаю с 1 и поднимаюсь соответственно.Использование ASC/DESC в ORDER BY CASE()
Единственными полями, которые я использую, являются идентификаторы roomID и столбца типа. (Если изменить тип видя, как это функция SQL да?)
SELECT *
FROM `rooms`
ORDER BY CASE WHEN `type` = 'Classroom'
THEN 1
WHEN `type` = 'Computer laboratory'
THEN 2
WHEN `type` = 'Lecture Hall'
THEN 3
WHEN `type` = 'Auditorium'
THEN 4
END
Это кажется достаточно простым, но я не могу заставить его работать. Таким образом, любая помощь была бы весьма признательна, тем более, что это, вероятно, глупый вопрос.
+1 @spinon, вы, вероятно, правы, но я подозреваю, что это не работает одинаково для разных дБ. например некоторые, где требуется ваша, и некоторые, где Syed Abdul Rahman's –
Это работает! Последняя строка должна быть ORDER BY roomID, но спасибо. Поэтому, если мне нужно что-то заказать ASC или DESC, мне придется сначала «сгруппировать» другой CASE. –
@conrad, вы, вероятно, правы. Не было никакого тэга относительно того, с чем он работал, поэтому я просто выбросил его туда, где это возможно. – spinon