繁体   English   中英

如何仅从日期字段返回最大年份的SQL行?

[英]How to return SQL rows with the largest year from date field only?

所以我的数据库中有多个字段,其中之一是date date字段是date数据类型,我只需要返回date字段中year最大的那些值。

到目前为止,我已经做到了:

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

现在显然还不够,我该如何强制它将year(date)为仅返回最大值?

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

尝试这个:

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");

另一种选择是这样写:

$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是手动选择的列。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM