我有这个SQL查询,这是错误的。我想更新wins表中的“prevmonth”字段,但仅限于字段“month_wins”具有最大值的记录。更新行的最大值为
UPDATE wins
SET prevmonth_top=1
WHERE month_wins = (SELECT MAX(month_wins) FROM wins)
但我该怎么做?
我有这个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)
SAME AS You can't specify target table 'table_name' for update in FROM clause
运行下面的查询,它可以帮助:
UPDATE wins
SET prevmonth_top=1 WHERE month_wins =
(
SELECT month_wins FROM (SELECT MAX(month_wins) FROM wins) AS month_wins
)
中指定更新目标表'wins'来更简单明了!伟大的家伙! –
什么那个错?任何错误或什么? –
是的,“#1093 - 你不能在FROM子句” – Neka