我有一张这样的表:
key data created
1 a 14:15
2 b 14:16
2 c 14:17
1 a 14:18
3 b 14:19
3 c 14:20
3 a 14:21
1 b 14:22
2 c 14:23
2 c 14:24
我希望获得插入最新数据的最后2个唯一键。换句话说,我想要一个能让我得到的查询:1,2
但是当我做这样的事情时:
SELECT distinct(key) FROM logs ORDER BY created DESC LIMIT 0,1
或者这个:
SELECT key FROM logs GROUP BY key ORDER BY created DESC LIMIT 0,1
我只得到:2,3 可能是因为这些是表格中的最后一个键。 我无法弄清楚如何使用最新数据获取2个键
答案 0 :(得分:2)
试试这个:
SELECT `key`, MAX( `created` ) AS `maxcreated`
FROM `logs`
GROUP BY `key`
ORDER BY `maxcreated` DESC
LIMIT 0,2
您没有为每个键选择最大值(即最新创建时间)。
因此,只需使用GROUP BY
按key
进行选择,然后添加MAX( created )
以选择每个key
的最后一次出现。应用相应的ORDER BY
和LIMIT
子句,您将获得所需的结果。