【问题标题】:Mysql sort order date 0000-00-00 firstMysql排序顺序日期0000-00-00第一
【发布时间】:2019-12-07 16:25:19
【问题描述】:

下面的 MySQL 查询有效,但不是我喜欢的方式。

有些帖子的日期为0000-00-00。我怎样才能先列出这些,然后再列出其余的。

SELECT *
FROM posts
ORDER BY posts.created DESC

示例结果

0000-00-00 - A post
0000-00-00 - Another post
2019-02-03 - New post
2011-01-01 - Old post

【问题讨论】:

    标签: mysql sql sql-order-by


    【解决方案1】:

    一种方法是添加显式键:

    SELECT p.*
    FROM posts p
    ORDER BY (p.created = '0000-00-00') DESC,
             p.created DESC
    

    【讨论】:

      【解决方案2】:

      试试:

      创建视图 test1 作为 选择页* 来自帖子 p WHERE p.created = '0000-00-00';

      创建视图 test2 作为 选择页* 来自帖子 p WHERE p.created '0000-00-00' ORDER BY p.created DESC;

      创建视图 t_final AS ( 选择 * 从测试1 联合所有 选择 * 来自测试2 )

      【讨论】:

        猜你喜欢
        • 2017-09-21
        • 2013-06-09
        • 2015-07-19
        • 2013-07-12
        • 2012-12-22
        • 2016-06-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多