SQL - 从具有给定范围的表中选择最近添加的行

时间:2012-01-25 23:31:05

标签: mysql sql

我有一个包含整数id(主键)和timestamp日期添加列(以及其他)的表。

提取十个最新“添加日期”值id值的语法是什么样的?

4 个答案:

答案 0 :(得分:3)

SELECT id
  FROM `table`
 ORDER BY `date added` DESC LIMIT 10
;

答案 1 :(得分:3)

如果我们按你的问题标题(最近10行):

SELECT `id`
  FROM `table`
 ORDER BY `date added` DESC
 LIMIT 10

如果我们按照您在问题中所说的内容(最近添加的10个最新值):

SELECT `id`
  FROM `table`
 WHERE `date added` IN ( SELECT DISTINCT `date added`
                           FROM `table`
                          ORDER BY `date added` DESC
                          LIMIT 10 )

正如我在评论中提到的,我主要使用Transact-SQL,因此您可能需要调整MySQL知识中的任何空白。

答案 2 :(得分:0)

SELECT id FROM `table` ORDER BY `date added` DESC LIMIT 10

答案 3 :(得分:0)

如果你有一个自动递增的主键,你也可以通过id订购:

SELECT `id`
 FROM `table`
 ORDER BY `id` DESC
 LIMIT 10

优点是id已经有一个索引,所以你可以非常快速地进行排序。但是你需要确保你不会弄乱id,所以它始终是正确的顺序。

如果你使用date added,你应该为它创建一个索引。但是表格会以这种方式使用更多的空间。

相关问题