我希望用户可以在个人资料页面上看到他们今天的图片。
这是对的吗?
SELECT * FROM pictures
WHERE userid = '$userid'
ORDER BY pictureuploaddate < DATE_ADD(NOW(), INTERVAL 1 DAY);
仍然无法正常工作。谢谢你的帮助。
答案 0 :(得分: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
最好比较日期而不是小于您想要当前日期的日期。因为它匹配得更快。
答案 1 :(得分: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
答案 2 :(得分:2)
我知道你已经选择了一个答案,但为了避免在同一天多次上传有任何混淆,你也可以这样做:
SELECT *
FROM pictures
WHERE userid = '$userid'
ORDER BY pictureuploaddate DESC
LIMIT 1;
答案 3 :(得分:1)
您现在正尝试按日期布尔测试的输出对结果进行排序。将该部分添加到WHERE子句更有意义。