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

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.

于 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 に答える