(MySQL)按字段顺序1 = 3,字段2

时间:2009-01-27 21:57:18

标签: sql mysql

我想订一张桌子:

首先是Field1 = 3 然后通过Field2 DESC

我知道我不能写OrderBy Field1 = 3,Field2 DESC

那么我该如何实现呢?

要澄清:

假设我有一张书桌。我希望列出表格中的所有书籍。我希望1990年的书籍出现在顶部,其余的书籍按字母顺序排列。

2 个答案:

答案 0 :(得分:7)

实际上,你可以写下你说不能的陈述。使用您的澄清示例:

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

“year = 1990”对于那些年份为1990年的人来说将是“1”,所以那些将会排在最前面。

答案 1 :(得分:1)

这是TSQL而不是MySQL,但它应该给你一个想法......

(假设我理解你的问题......)

ORDER BY
    CASE WHEN Field1 = 3 THEN 0 ELSE 1 END    ASC,
    Field2                                   DESC