更新表格设置Style =' new'其中id =(SELECT MAX(id)From table); 这是我的查询。但是没有在mysql中工作。 错误显示:您无法指定目标表'表'用于FROM子句中的更新 请帮忙。
答案 0 :(得分:1)
您可以将子查询的结果存储在会话变量中,如下所示:
SELECT MAX(id) INTO @maxID
FROM table
;
UPDATE table
SET Style='new'
WHERE id=@maxID
;
请注意,操作不再是" atomic&#34 ;;根据正在进行的活动,MAX(id)有可能在SELECT和UPDATE之间切换。
另一种可能性是:
UPDATE table
SET Style = 'new'
ORDER BY id DESC
LIMIT 1
;
但我倾向于(没有特别的原因)反对这种查询。