私はこのSQLクエリを持っていますが、これは間違っています。winsテーブルのフィールド「prevmonth」を更新したいのですが、フィールド「month_wins」の最大値を持つレコードに対してのみです。
UPDATE wins
SET prevmonth_top=1
WHERE month_wins = (SELECT MAX(month_wins) FROM wins)
しかし、どうすればこれを行うことができますか?
このトリックを試してみてください。
UPDATE wins
SET prevmonth_top=1
ORDER BY month_wins DESC
LIMIT 1
またはこのようなもの、
UPDATE IGNORE giveaways
SET winner = 1
WHERE month_wins = (select maxID from (SELECT MAX(ID) maxID FROM giveaways) as t)
次のクエリを実行すると、役立つ場合があります。
UPDATE wins
SET prevmonth_top=1 WHERE month_wins =
(
SELECT month_wins FROM (SELECT MAX(month_wins) FROM wins) AS month_wins
)