MySQL исключение из порядка - PullRequest
2 голосов
/ 13 апреля 2011

У меня есть база данных mySql, и у меня есть забавный вопрос ...

Мне нужно упорядочить результаты запроса по полю, в котором есть записи 1,2,3 или 4, упорядочено по убыванию, нос 4 в конце.

Так что я хочу получить результаты в следующем порядке

3-х 2-х 1-х 4-х

Возможно ли это вообще

Я знаю, что могу сделать заказ массива результатов в php, но, к сожалению, мне нужно сделать это в SQL-выражении.

Заранее спасибо

.k

Ответы [ 3 ]

8 голосов
/ 13 апреля 2011

Если поле является int,

ORDER BY (fieldname = 4) DESC, fieldname DESC

должен сделать трюк.

2 голосов
/ 13 апреля 2011

Вот еще один крутой способ

ORDER BY MOD(fieldname,4) DESC,fieldname

Если результатом является CHAR (1), тогда

ORDER BY LOCATE(fieldname,'3214'),fieldname
1 голос
/ 13 апреля 2011

добавить это к заказу

ORDER BY CASE field_name WHEN 4 THEN 1 ELSE 2 END

это вернет результат заказа запроса, используя значение поля

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...