在 sql server 中,我们可以使用下面的 update 语句对表进行更新操作。
update t1 set t1.xx= (select yy from t2) ;
但是 mysql 不支持 update set 直接使用 select 的结果,那么怎么在 mysql update 中使用 select 的结果呢?
我们可以换一种解决方法,也就是使用 inner join,上面的 sql 语句在 mysql 中可以改写成下面方式:
update t1 inner join (select yy from t2) t3 set t1.xx = t2.yy
示例:
student 表:
id name class_id
1 张三 班级 1
2 李四 班级 2
class 表:
id name
1 班级 1
2 班级 2
3 班级 3
通过 update inner join 更新 student 表中的 class_id 字段,由班级名称更新为班级 id,具体 mysql 语句为:
update student inner join (select id,name from class) c set student.class_id = c.id where student.class_id = c.name
声明:本文为原创文章,版权归主机之家测评所有,欢迎分享本文,转载请保留出处!