(MySQL) OrderBy Field1 = 3, Field2 - PullRequest
1 голос
/ 28 января 2009

хочу заказать столик:

Сначала по Field1 = 3 Тогда по Field2 DESC

Я знаю, что не могу написать OrderBy Field1 = 3, Field2 DESC

Так как я могу это реализовать ??

УТОЧНИТЬ:

Допустим, у меня есть стол с книгами. Я хочу перечислить ВСЕ книги в таблице. Я хотел бы, чтобы книги 1990 года появлялись сверху, а затем остальные книги в алфавитном порядке заголовка.

Ответы [ 2 ]

7 голосов
/ 28 января 2009

На самом деле, вы можете написать заявление, которое вы сказали, что вы не можете. Используя ваш пример разъяснения:

SELECT * FROM Books ORDER BY (year = 1990) DESC, name

"год = 1990" будет равен "1" для тех, где 1990 год, поэтому они будут наверху.

1 голос
/ 28 января 2009

Это скорее TSQL, чем MySQL, но он должен дать вам представление ...

(при условии, что я понимаю ваш вопрос ...)

ORDER BY
    CASE WHEN Field1 = 3 THEN 0 ELSE 1 END    ASC,
    Field2                                   DESC
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...