where子句中的select查询输出不起作用

时间:2015-08-03 17:43:13

标签: mysql

更新表格设置Style =' new'其中id =(SELECT MAX(id)From table); 这是我的查询。但是没有在mysql中工作。 错误显示:您无法指定目标表'表'用于FROM子句中的更新 请帮忙。

1 个答案:

答案 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
;

但我倾向于(没有特别的原因)反对这种查询。

相关问题