表:UUID,版本,日期時間MySQL的 - 組與排序DESC
版本是不是唯一的,但這個想法是對給定的UUID
SELECT * FROM table WHERE uuid='bla' GROUP BY version ORDER BY datetime desc
...當然會得到datetime asc結果 - 有沒有辦法通過desc來「預先」排序,這樣只有最新版本被提取?
表:UUID,版本,日期時間MySQL的 - 組與排序DESC
版本是不是唯一的,但這個想法是對給定的UUID
SELECT * FROM table WHERE uuid='bla' GROUP BY version ORDER BY datetime desc
...當然會得到datetime asc結果 - 有沒有辦法通過desc來「預先」排序,這樣只有最新版本被提取?
,因爲該表只有這3個領域,你是流體過濾你可以使用MAX而不JOIN:
SELECT version, MAX(datetime) Maxdatetime
FROM table
WHERE uuid='bla'
GROUP BY version
但是,如果表中有多個字段,或者你不過濾通過uid
- 你需要首先得到MAX日期時間每個版本,然後選擇該行:
SELECT t.uuid, t.version, t.datetime
FROM table t JOIN (
SELECT version, MAX(datetime) Maxdatetime
FROM table
WHERE uuid='bla'
GROUP BY version
) r ON t.version = r.version AND t.datetime = r.Maxdatetime
WHERE t.uuid='bla'
ORDER BY t.datetime desc
SELECT * FROM
(SELECT * FROM table WHERE uuid='bla' ORDER BY datetime desc) table
GROUP BY version;
有對我來說是更好的方法,你可以添加一個desc
由基團:UUID = 'BLA' GROUP BY版本說明
爲什麼它的工作原理是,因爲我的ID是生成的,因此永遠是最新的ID表示最新的日期時間FROM表
SELECT *
正是我需要一些輕微的改動 - 謝謝! – mmrtnt 2013-06-14 15:59:50
是否有必要將WHERE子句重複兩次? – ina 2015-04-06 03:26:51