2013-07-06 38 views
3

我有列作为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); 

其产生错误

+0

你需要的最大月份是10,最大2013年。那么你需要什么?按年或按月。 –

回答

2

只需使用mon日和年:

Demo

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

Yeap,但不要忘记 - 如果您需要获得MAX值,则必须使用DESC进行排序;) – FSou1

1

你可以ORDER BY年,月与DESC关键字:)

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

而你需要按年份排序:) – mishik

+0

或者,对不起。这是真的:)只是忘了,thx! – FSou1

2

对于这种类型的查询,order bylimit是最好的办法。你似乎想要最新的日期,因此与去年开始(按降序排列),然后每月(按降序排列):

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

特别是,你希望最大月和今年最高。根据你想要的结果,你想要最近的/最新的月份。

+0

谢谢你,他的工作很好 – hserusv

相关问题