【发布时间】:2012-03-26 22:26:11
【问题描述】:
我有一张这样的桌子
CREATE TABLE `TEST_A` (
`test_a_id` int(11) NOT NULL AUTO_INCREMENT,
`added_by` int(11) DEFAULT NULL,
`added_date` datetime DEFAULT NULL,
`modified_by` int(11) DEFAULT NULL,
`modified_date` datetime DEFAULT NULL,
PRIMARY KEY (`test_a_id`)
);
我需要形成一个 MYSQL 查询来获取最近创建或更新的记录。我试图做的是在added_date和modified_date上写一个带有order by子句的sql查询,像这样
Select * from TEST_A order by added_date desc, modified_date desc limit 10;
但这给了我最近添加日期的记录,然后是最近的修改日期,这对我来说是不正确的
如果我修改或添加一条记录,它应该如何工作,那么它应该是列表中的第一个。我想到的一个解决方案是将 modified_date 和 added_date 与当前系统日期进行比较并相应地安排它们,但如果我必须在不指定任何限制的情况下显示记录,这种查询会非常慢。基本上我在我的搜索功能中使用这种类型的查询。
有什么想法吗?
【问题讨论】:
-
改变added_date和modified_date的顺序,像这样:
SELECT * FROM TEST_A ORDER BY modified_date desc, added_date desc LIMIT 10;