在update的时候不能更新select后的结果
示例:
update test.table1 a
set a.name='111'
where a.id = (select max(id) from test.table1)
这个会报错,
可以通过连表解决
update test.table a
join (select max(id) as id from test.table) b
set t.name ='111'
where a.id = b.id
或
update test.table a ,(select max(id) as id from test.table) b
set a.name ='111'
where a.id = b.id
说明:
update 时,更新的表不能在set和where 中用于子查询
update 时,可以对多个表进行更新
update 后面可以做任意查询,这个作用相当于from