一千萬個為什麽

搜索

MySQL日期查詢僅返回一年,當存在多個時

我是兼職攝影師的兼職設計師/開發人員。我有一個附有各種元數據的照片數據庫。我想查詢數據庫並返回拍攝照片的年份列表,以及當年拍攝的照片數量。

簡而言之,我想要一個如下所示的列表:

2010 (35 photos)
2009 (67 photos)
2008 (48 photos)

這是我正在使用的查詢:

SELECT YEAR(date) AS year, COUNT(filename) as quantity FROM photos WHERE visible='1' GROUP BY 'year' ORDER BY 'year' DESC

這是唯一的結果,而不是生成所有可能的年份(數據庫包括2010 - 2008年的照片):

2010 (35 photos)

我嘗試了很多不同的語法,但此時我正在放棄並尋求幫助!

最佳答案

不要單引號 year
這告訴MySQL year 是一個字符串;它不是。

此外,請勿在 GROUP BY 中使用別名。

嘗試這個:

SELECT YEAR(date) AS year, COUNT(filename) as quantity 
FROM photos 
WHERE visible='1' 
GROUP BY YEAR(date)
ORDER BY YEAR(date) DESC

編輯:點擊 在大多數RDBMS中, SELECT 子句最後解釋。
因此,我們不能在該特定查詢的其他子句中使用列別名。

轉載註明原文: MySQL日期查詢僅返回一年,當存在多個時