与两个最大列相比得到一行

时间:2013-07-06 12:40:33

标签: mysql sql

我有一个表测试,列为id,month,year。我需要在一个查询中获得最大月份和最大年份的id。

例如

id     month   year
1       10     2012

2        9     2013

我的结果应该是id 2。

首先根据这些最大月份检查年份,我需要获取ID

我在MySQL中提供这样的查询

 select id from book where MAX(month) and MAX(year);

产生错误

3 个答案:

答案 0 :(得分:2)

使用月份和年份进行排序:

Demo

SELECT id
FROM   books
ORDER  BY year DESC, month DESC
LIMIT  1

答案 1 :(得分:2)

对于此类查询,order bylimit是最佳方法。您似乎想要最新的日期,所以从年份(降序)开始,然后是月份(按降序排列):

select *
from book
order by year desc, month desc
limit 1

特别是,想要最大月份和最大年份。根据您想要的结果,您需要最近/最近一个月。

答案 2 :(得分:1)

您可以使用DESC关键字对年份,月份进行排序:)

SELECT id 
FROM book 
ORDER BY year DESC, month DESC 
LIMIT 0, 1