2013-01-31 32 views
1

我有一個表是這樣的: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

試試這個拿到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 BYLIMIT子句,即可得到理想的結果。

Example Fiddle

+0

現在我明白了!謝謝。 –