select gmt from history.cachemap order by gmt asc limit 0,1;
..this returns gmt: 2012-05-03
select gmt from history.cachemap order by gmt desc limit 0,1;
..this returns gmt: 2012-09-15
我正在使用的数据库有一点背景,我试图从几百万条记录的列表中获取最早和最新的日期字段。
本周早些时候,我发布了这个问题:
How to combine three MySQL queries into one?
这个问题的回答很完美,但不适用于此类查询。
最佳答案
我认为最好的方法是使用max和min函数。您可以将结果作为一行:
select min(gmt), max(gmt)
from history.cachemap
这是最有效的解决方案,因为它只涉及一次数据传递。
另外,您可以使用union all将其分为两行:
select 'min' as which, min(gmt)
from history.cachemap union all
select 'max', max(gmt)
from history.cachemap
UNION / UNION ALL不会以指定的顺序返回行,因此您应包括有关哪个行的信息(或明确地对它们进行排序)。
关于mysql - 将这两个查询合并为一个的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12518085/