Mysql - ORDER BY - 可以使用条件吗?

时间:2011-05-11 03:32:24

标签: mysql

我按date_modified desc

对列表进行排序

此问题是当新记录输入,date_modified为null date 0000-00-000000:00:00

因此,此记录将位于底部,而不是列表顶部。

如何排序? :(

注意:我没有使用now date插入date_modified,因为我有一个字段date_create

3 个答案:

答案 0 :(得分:1)

ORDER BY COALESCE(date_modified,date_created)DESC;

但是,如果你在执行INSERT时将date_modified设置为CURRENT_TIMESTAMP,那么性能会更好。正如已经建议的那样。

答案 1 :(得分:0)

我觉得你需要解决插入时的null日期问题。为什么不在插入时设置date_modified = now?

答案 2 :(得分:0)

你可以做2件事,先按创作日期排序,然后按last_modified

排序
SELECT * FROM table ORDER BY created DESC,last_modified DESC

或者您可以将默认修改时间添加到当前时间

INSERT INTO table (....,last_modified)VALUES (....,NOW());

现在您可以轻松进行排序