更新表集 Style='new' where id=(SELECT MAX(id) From table); 这是我的查询。但在 mysql 中不起作用。 错误显示:您无法在 FROM 子句中指定要更新的目标表“表” 请帮忙。
最佳答案
您可以将子查询的结果存储在 session 变量中,如下所示:
SELECT MAX(id) INTO @maxID
FROM table
;
UPDATE table
SET Style='new'
WHERE id=@maxID
;
请注意,该操作不再是“原子的”;根据正在进行的事件,MAX(id) 可能会在 SELECT 和 UPDATE 之间发生变化。
另一种可能性是:
UPDATE table
SET Style = 'new'
ORDER BY id DESC
LIMIT 1
;
但我倾向于(没有特殊原因)反对此类查询。
关于mysql - where 子句中的选择查询输出不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31793492/