我要讓資料只要是最新的就排在最上面,如下呈現結果,但可能會有一種情況是更新時間會是 0000-00-00 00:00:00,就要搭配 IF 或 CASE WHEN

建立時間	                更新時間
2019-08-16 23:55:40	0000-00-00 00:00:00
2019-08-16 23:27:57	2019-08-16 23:55:19
2019-08-16 23:25:13	2019-08-16 23:25:13
2019-08-16 23:17:55	2019-08-16 23:17:55
2019-08-16 22:38:34	2019-08-16 22:38:34
2019-08-01 17:20:48	2019-08-16 17:45:43	
2019-08-15 10:24:18	2019-08-16 17:09:26
2019-08-13 12:25:33	2019-08-16 17:00:03
2019-08-15 10:51:46	2019-08-15 10:52:06
2019-08-15 10:27:39	2019-08-15 10:27:45

作法如下,優先呈度為 0000-00-00 00:00:00 > updated_at > created_at

ORDER BY
    -- IF (o.updated_at = '0000-00-00 00:00:00', 0, 1),
    -- 用上面的 IF 跟下面的 CASE 同效果
    CASE WHEN o.updated_at = '0000-00-00 00:00:00' THEN 0 ELSE 1 END,
    COALESCE(o.updated_at,  o.created_at)
DESC
最後修改日期: 2019 年 08 月 17 日
Related posts 相關文章
MySQL 8.0
More...
探討 MySQL 的安全性 load data infile
More...
查看 MySQL 資料庫使用大小
More...
MySQL 的 INT 與 CHAR 的差別
More...

作者

留言

撰寫回覆或留言

發佈留言必須填寫的電子郵件地址不會公開。

6 × 1 =