Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql SQL选择添加了\u日期和更新了\u日期的行_Mysql_Sql - Fatal编程技术网

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
从文档:

返回列表中的第一个非NULL值,如果没有非NULL值,则返回NULL


@marc_s:使用Mysql,但只需查询即可获得记录
ORDER BY 
    CASE updated_date 
        WHEN NULL THEN added_date 
        ELSE updated_date
         END 
    desc