私は試した:
UPDATE giveaways SET winner = '1' WHERE ID = (SELECT MAX(ID) FROM giveaways)
しかし、それは与えます:
FROM
#1093 -句の更新にターゲット テーブル 'giveaways' を指定できません
この記事は関連しているようですが、クエリに適合させることはできません。どうすれば動作させることができますか?
リンクした記事の情報に基づいて、これは機能するはずです:
update giveaways set winner='1'
where Id = (select Id from (select max(Id) as id from giveaways) as t)
WHERE
これは、更新が周期的である可能性があるためです...そのレコードを更新すると、条件が発生する何かが発生した場合はどうなりますFALSE
か? そうではないことはわかっていますが、エンジンはそうではありません。操作中のテーブルに反対のロックが存在する可能性もあります。
私はあなたがこのようにすることができると思います(テストされていません):
UPDATE
giveaways
SET
winner = '1'
ORDER BY
id DESC
LIMIT 1
update giveaways set winner=1
where Id = (select*from (select max(Id)from giveaways)as t)