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