Mysql排序顺序日期0000-00-00第一

Posted

技术标签:

【中文标题】Mysql排序顺序日期0000-00-00第一【英文标题】:Mysql sort order date 0000-00-00 first 【发布时间】: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

【问题讨论】:

【参考方案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 )

【讨论】:

以上是关于Mysql排序顺序日期0000-00-00第一的主要内容,如果未能解决你的问题,请参考以下文章