1

我有一张这样的桌子:

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 个密钥

4

1 回答 1

2

试试这个:

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

您没有选择每个密钥的最大值(即最新创建时间)。

所以只需使用GROUP BYto select perkey并添加 aMAX( created )来选择 each 的最后一个外观key。应用相应的ORDER BYandLIMIT子句,您将获得所需的结果。

示例小提琴

于 2013-01-31T13:35:45.360 回答