![](/img/trans.png)
[英]Selecting the no of rows from the database using the year stored in date field
[英]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.