在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
版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《mysql update使用select的结果的方法》
文章链接:https://www.liuzhanwu.com/2833.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。
文章名称:《mysql update使用select的结果的方法》
文章链接:https://www.liuzhanwu.com/2833.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。
相关推荐
456CDN:为网络安全与加速保驾护航,CDN测评推荐
456CDN:高防CDN,200GB DDoS防护,无视CC,1TB流量@50Mbps带宽,500元/月,安全加速,智能守护,稳定安全
#618大促#最后一天|凌霞软件旗下新一代服务器面板 1Panel:永久授权 539元起,10台4900元,即买即赠SSL证书
#618大促#最后一天|凌霞软件旗下强大易用的建站工具 Halo:永久授权 660元起,10台6000元,即买即赠SSL证书
#6.18促销#Themebetter:WordPress主题特惠7折,DUX主题折后559元,不限制域名授权数目
耗子Linux 面板:又一个轻量 Linux 服务器运维管理面板
#11.11#Themebetter:年度大放价,全场6折特惠,DUX主题折后480元,不限制域名授权数目
紧急提醒:DediPath官宣跑路