2015-06-04 40 views
0

所以我在我的數據庫中有多個字段,其中一個是datedate字段爲date數據類型,我只需要返回date字段中具有最大值year值的那些值。如何僅從日期字段返回具有最大年份的SQL行?

到目前爲止,我已經做到了這一點:

$files = mysql_query("SELECT * FROM files WHERE unpublish=0 AND year(date) ORDER BY files.date DESC"); 

現在顯然還不夠,我怎麼可能會迫使它來治療year(date)僅返回最大的值?

+0

看起來像純[tag:mysql]。是否有[tag:sql-server]標籤的原因(它們是單獨的產品)? –

回答

2
SELECT * FROM files 
WHERE unpublish=0 
AND year(date)=(SELECT MAX(YEAR(date)) FROM files) 
ORDER BY files.date DESC 
0

試試這個:

SELECT * FROM files 
WHERE unpublish=0 
and year(date)=(SELECT MAX(YEAR(date) FROM files) 
ORDER BY files.date DESC 

所以它會像

$files = mysql_query("SELECT * FROM files 
    WHERE unpublish=0 
    and year(date)=(SELECT MAX(YEAR(date) FROM files) 
    ORDER BY files.date DESC"); 
0

還有一個選擇是這樣寫:

$files = mysql_query("SELECT * FROM files 
         WHERE unpublish=0 
         AND date=(
          SELECT YEAR(date) 
          FROM files 
          ORDER BY date DESC 
          LIMIT 1) 
         ORDER BY files.date DESC"); 

,也可以是你想要的從SELECT命令中選擇最大日期,如:

$files = mysql_query("SELECT col1, col2, col3, max(YEAR(date)) AS date 
         FROM files 
         WHERE unpublish=0 
         ORDER BY files.date DESC"); 

其中col1,col2,col3是manualy選擇的列。

相關問題