MySQL的 - 组与排序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