[英]how to order two date columns and get latest 20 records from one table in mariadb?
我在mariadb中有一個名為post
表,其中包含列
|| p_creation_dateAndTime || p_modification_dateAndTime ||
並且兩個值都是datetime
類型
現在我要從表中創建或修改以降序排列的5條記錄
這意味着現在當前時間是10-10-2010 10:10:10並且表中的條目就像
p_creation_dateAndTime || p_modification_dateAndTime
07-07-2007 07-07-07 || NULL
02-02-2002 02-02-02 || NULL
03-03-2003 03-03-03 || 07-07-2007 07-07-07
05-05-2005 05-05-05 || NULL
02-02-2002 02-02-02 || 09-09-2009 09-09-09
08-08-2008 08-08-08 || NULL
我希望結果像
p_creation_dateAndTime || p_modification_dateAndTime
02-02-2002 02-02-02 || 09-09-2009 09-09-09
08-08-2008 08-08-08 || NULL
07-07-2007 07-07-07 || NULL
03-03-2003 03-03-03 || 07-07-2007 07-07-07
05-05-2005 05-05-05 || NULL
02-02-2002 02-02-02 || NULL
如09> 08> 07> 07> 05> 02
有什么解決辦法嗎?
上面的代碼在我的項目中使用,它與stackoverflow站點相同,並且在那時向用戶顯示問題時需要這種排序
提前致謝
在MySQL或MariaDB或Postgres或Oracle或Teradata或DB2或BigQuery或RedShift(等等)中,使用great greatest()
:
order by greatest(p_creation_dateAndTime,
coalesce(p_modification_dateAndTime, p_creation_dateAndTime)
) desc,
p_creation_dateAndTime desc -- in the event of ties
coalesce()
用於處理NULL
值。 如果greatest()
任何參數為NULL
,則返回值為NULL
。
如果確實使用的是datetime
數據類型,則不必擔心顯示日期的格式。 order by
是內部格式。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.