プロフィールページにアップロードされた今日の写真をユーザーに表示できるようにしたいと思います。
これは正しいです?
SELECT * FROM pictures
WHERE userid = '$userid'
ORDER BY pictureuploaddate < DATE_ADD(NOW(), INTERVAL 1 DAY);
まだ動作していません。助けてくれてありがとう。
すでに回答を選択していることは承知していますが、同じ日に複数のアップロードを行うことによる混乱を避けるために、次のこともできます。
SELECT *
FROM pictures
WHERE userid = '$userid'
ORDER BY pictureuploaddate DESC
LIMIT 1;
You would get something like:
SELECT *
FROM pictures
WHERE userid = '$userid' AND
DATE(pictureuploaddate) = CURDATE() # Match date without time
ORDER BY pictureuploaddate DESC
Why do you ORDER BY
and use an =
in it? It should be todays date, just add it to the WHERE. If you want to get the latest picture first you can ORDER BY pictureuploaddate DESC
Also it's better to compare dates instead of smaller than if you want current date. Because it is faster to match.
これは、比較のブール結果によって並べ替えられます。
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
日付のブール値テストの出力によって結果を並べ替えようとしています。その部分をWHERE句に追加すると、より理にかなっています。