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

Posted

技术标签:

【中文标题】(MySQL) 按字段排序 1=3,字段 2【英文标题】:(MySQL) OrderBy Field1=3, Field2 【发布时间】:2009-01-27 21:57:18 【问题描述】:

我想订一张桌子:

首先由 Field1=3 然后按Field2 DESC

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

那么我该如何实现呢?

澄清:

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

【问题讨论】:

我不确定您的意思,您是否希望将 Field1 的值正好为 3 的所有行放在顶部,然后放在不是 3 的所有行之前? 【参考方案1】:

实际上,你可以写你说你不能的语句。使用您的说明示例:

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

对于年份为 1990 的年份,“year = 1990”将为“1”,因此它们将位于顶部。

【讨论】:

【参考方案2】:

这是 TSQL 而不是 mysql,但它应该给你的想法...

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

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

【讨论】:

以上是关于(MySQL) 按字段排序 1=3,字段 2的主要内容,如果未能解决你的问题,请参考以下文章

mysql 如何 多表连查 按时间到排序

MySQL 将某个字段值排在最后,其余记录单独排序

mysql根据某个字段内容排序

mysql 根据某字段特定值排序

在每个表,mysql,经典asp中按相同字段排序2个表

mysql字段排序数字在字母前面,字母也要按首字母排序