Previous Article Next Article MySQL 資料依建立時間與更新時間作排序
Posted in Database

MySQL 資料依建立時間與更新時間作排序

MySQL 資料依建立時間與更新時間作排序 Posted on 2019 年 08 月 18 日Leave a comment

我要讓資料只要是最新的就排在最上面,如下呈現結果,但可能會有一種情況是更新時間會是 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

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *