MYSQL如何查找日期最大的所有记录

时间:2015-11-18 08:42:29

标签: mysql

我现在有用于存储Instagram详细信息的下表我想查找日期最大的所有记录。

Table: instagrammer_recent_statistic

id    instagram_id  comments_count likes_count  created_date
----  ------------  -------------- -----------  ------------
8900  481959735     19             92           2015-11-18 09:46:15
8899  481959735     10             25           2015-11-18 09:46:14
8898  481959735     25             57           2015-11-18 09:46:13
8997  481959735     35             74           2015-11-17 09:46:15
8896  481959735     09             49           2015-11-17 09:46:14
8895  481959735     48             16           2015-11-17 09:46:13
8994  481959735     44             42           2015-11-16 09:46:15
8893  481959735     13             17           2015-11-16 09:46:14
8892  481959735     53             34           2015-11-16 09:46:13

我想获得最新的日期记录:

id    instagram_id  comments_count likes_count  created_date
----  ------------  -------------- -----------  ------------
8900  481959735     19             92           2015-11-18 09:46:15
8899  481959735     10             25           2015-11-18 09:46:14
8898  481959735     25             57           2015-11-18 09:46:13

我已尝试使用此查询但未正常工作并获得所有结果:(

SELECT *
FROM instagrammer_recent_statistic
WHERE instagram_id = '481959735' AND
    created_date IN (
        SELECT MAX( created_date )
        FROM instagrammer_recent_statistic
        GROUP BY created_date
    )
ORDER BY id DESC;

1 个答案:

答案 0 :(得分:2)

您的原始查询是将每个created_date时间戳与最大时间戳进行比较。这仅适用于巧合具有最大时间戳的记录。在下面的查询中,我将每个created_date与最长时间戳中的进行比较。

SELECT *
FROM instagrammer_recent_statistic
WHERE instagram_id = '481959735' AND
    DAY(created_date) = (
        SELECT DAY(MAX( created_date )) FROM instagrammer_recent_statistic
    )
ORDER BY id DESC;

使用您的示例数据点击以下链接,查看此查询的正在运行的演示。

SQLFiddle