一、单表查询—>更新
update table_name set field1=new-value1, field2=new-value2 [where clause]
二、多表联合查询—>更新
update a inner join (select yy from b) c on a.id = c.id set a.xx = c.yy [where clause]
- 上面的 inner join ,可以换为 left join 、 right join 等联合查询。
- set 后的字段必须为 a 表中的字段,该字段可以等于某个常量,可以等于某一列。若不是 a 表中的字段,则会报 the target table b of the update is not updatable 的信息。
- where 子句必须放在 set 后面
- update 后的 a 表不是查询的结果,也不能是 select 子句
例子:
tableex_copy1表
tablein_copy1表
查询sql
select * from tableex_copy1 a left join (select * from tablein_copy1) b on a.bid = b.aid where b.asex = '女'
update sql
update #select * from tableex_copy1 a left join (select * from tablein_copy1) b on a.bid = b.aid set a.ceshi = '6666' where b.asex = '女'
更新之后的tableex_copy1表
总结
到此这篇关于mysql将select结果执行update的文章就介绍到这了,更多相关mysql将select结果执行update内容请搜索www.887551.com以前的文章或继续浏览下面的相关文章希望大家以后多多支持www.887551.com!