3

我希望用户可以在个人资料页面上看到他们今天上传的照片。

这个对吗?

SELECT * FROM pictures 
WHERE userid = '$userid'
ORDER BY pictureuploaddate < DATE_ADD(NOW(), INTERVAL 1 DAY);

还是行不通。谢谢您的帮助。

4

4 回答 4

2

我知道你已经选择了一个答案,但为了避免在同一天多次上传造成混淆,你也可以这样做:

SELECT * 
FROM pictures 
WHERE userid = '$userid'
ORDER BY pictureuploaddate DESC
LIMIT 1;
于 2013-04-16T17:33:37.940 回答
2

你会得到类似的东西:

SELECT * 
FROM pictures 
WHERE userid = '$userid' AND 
      DATE(pictureuploaddate) = CURDATE() # Match date without time
ORDER BY pictureuploaddate DESC

你为什么要在里面ORDER BY用一个=?它应该是今天的日期,只需将其添加到 WHERE。如果您想先获取最新图片,您可以ORDER BY pictureuploaddate DESC

此外,如果您想要当前日期,最好比较日期而不是更小。因为匹配起来更快。

于 2013-04-16T16:55:32.113 回答
2

这将按比较的布尔结果排序:

ORDER BY pictureuploaddate < DATE_ADD(NOW(), INTERVAL 1 DAY)

我猜你想要WHERE子句中的比较:

WHERE userid = '$userid'
AND pictureuploaddate BETWEEN CURDATE() AND CURDATE() + INTERVAL 86399 SECOND
ORDER BY pictureuploaddate DESC
于 2013-04-16T16:56:13.210 回答
1

您现在正尝试通过日期的布尔测试的输出对结果进行排序。将该部分添加到 WHERE 子句中更有意义。

于 2013-04-16T16:56:48.707 回答