主机之家测评主机之家测评  2019-08-25 13:32 主机之家测评 隐藏边栏 |   抢沙发  90 
文章评分 0 次,平均分 0.0

在 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

声明:本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

发表评论

扫一扫二维码分享