2013-07-06 36 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

相關問題