出现此问题的sql语句如下:
update test set take=(select MAX(id) from test) where userName='1'
翻译是:不能在FROM子句中为更新指定目标表’test’
原因在于,在mysql中,不能先select出同一表中的某些值,再update这个表。
解决办法:
把查询语句的结果集当作一个表,自我查询一遍,再进行修改。
sql如下:
select a.id from (select MAX(id) id from test) as a
加上修改,sql语句就是这样的:
update es_train_result set update_time=now(),take=
(select a.id from (select MAX(id) id from es_train_result) as a)
where userName='1'
完毕~