这篇文章主要给大家介绍了关于MySQL将select结果执行update的相关资料,文中通过示例代码介绍的非常详细对大家
的学习或者工作具有一定的参考学习价值 需要的朋友们下面随着小编来一起学习学习吧!
一、单表查询—>更新
- 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表