Mysql SQL选择添加了\u日期和更新了\u日期的行
我正在尝试按Mysql SQL选择添加了\u日期和更新了\u日期的行,mysql,sql,Mysql,Sql,我正在尝试按added\u date选择行顺序,或者如果行已更新,则按updated\u date选择行顺序 默认更新日期为Null 在(dd-mm-yy)中给出的上表日期 下表中,第一行在2月2日添加,第二行在2月1日添加,因此使用 select * from tablename order by added_date desc; 我得到最新的一行,但是如果任何一行被更新,那么这个更新的行将成为最新的一行 对于第二行,该行在2月1日添加,但在2月3日更新,因此它成为最新的一行 如何获取添加和
added\u date
选择行顺序,或者如果行已更新,则按updated\u date
选择行顺序
默认更新日期为Null
在(dd-mm-yy
)中给出的上表日期
下表中,第一行在2月2日添加,第二行在2月1日添加,因此使用
select * from tablename order by added_date desc;
我得到最新的一行,但是如果任何一行被更新,那么这个更新的行将成为最新的一行
对于第二行,该行在2月1日添加,但在2月3日更新,因此它成为最新的一行
如何获取添加和更新日期的记录
id title name added_date updated_date
1 asd rff 02-02-2013 NULL
2 fsfs rwr 01-02-2013 03-02-2012
3 ddd wwrr 30-01-2013 04-02-2013
编辑:使用MYSQL时,您没有指定使用哪种RDBMS。对于Oracle,您可以尝试以下方法:
SELECT * FROM tablename ORDER BY NVL(updated_date,added_date) DESC;
SQL Server:
SELECT * FROM tablename ORDER BY ISNULL(updated_date,added_date) DESC
MySQL:
select * from tablename order by ifnull(updated_date,added_date) desc;
尝试使用
COALESCE
SELECT *
FROM tablename
ORDER BY COALESCE(updated_date, added_date) DESC
@marc_s:使用Mysql,但只需查询即可获得记录
ORDER BY
CASE updated_date
WHEN NULL THEN added_date
ELSE updated_date
END
desc