SQL - 获取最后更改的唯一值

时间:2013-01-31 13:08:02

标签: mysql sql

我有一张这样的表:

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个键

1 个答案:

答案 0 :(得分:2)

试试这个:

SELECT `key`, MAX( `created` ) AS `maxcreated`
FROM `logs`
GROUP BY `key`
ORDER BY `maxcreated` DESC 
LIMIT 0,2

您没有为每个键选择最大值(即最新创建时间)。

因此,只需使用GROUP BYkey进行选择,然后添加MAX( created )以选择每个key的最后一次出现。应用相应的ORDER BYLIMIT子句,您将获得所需的结果。

Example Fiddle