MySQL选择5个最新的ID

时间:2012-03-02 18:33:31

标签: mysql limit max

我只是想吐出最近创建的5个行(ID),这样我就可以通过php比较另一个数据库中的插入和更新:

SELECT MAX(ID), MAX(DATE) from table ORDER BY ID LIMIT 5

应吐出这样的东西:

ID      DATE
4018    2012-03-01
4017    2012-03-01
4016    2012-02-25
4015    2012-02-15
4014    2012-02-11

4 个答案:

答案 0 :(得分:4)

使用DESC排序首先获得最高值。我假设您的ID是逐步创建的......

SELECT ID, DATE from table ORDER BY ID DESC LIMIT 5

答案 1 :(得分:3)

如果出于某些原因,较高的ID没有更新的日期,您可以使用它来按日期进行“真实”排序:

    SELECT id, date FROM table ORDER BY date_format(date, '%Y%m%d') DESC LIMIT 5;

链接: http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function_date-format

答案 2 :(得分:2)

除非您想要单行或使用MAX,否则不应使用GROUP BY。您的查询应该只是

SELECT ID, DATE from table ORDER BY ID DESC LIMIT 5

答案 3 :(得分:0)

我不了解当前的查询。根据您的描述,您只需要通过id desc订购结果。为什么使用MAX(ID)和MAX(DATE)。我只记得你DATE是一个保留的关键字。

我认为查询应为SELECT ID, DATE FROM table ORDER BY ID DEST LIMIT 5 OFFSET 0