mysql - 使用update语句同时更新两个表的问题?
天蓬老师
天蓬老师 2017-04-17 16:12:10
[MySQL讨论组]

先贴sql:
update class ,student set class.class_id = '2011',student.class_id = class.class_id where class_name = '一班';

我的需求是将class表中一班的id修改为2011,然后将student表中所有的学生的班级id都更新。
但是上面的sql的执行结果是先执行student.class_id = class.class_id ,然后再执行class.class_id = '2011'

一开始我以为是赋值语句顺序的问题,于是我把两个赋值语句调换了顺序,发现效果还是不变。。。为什么呢?
正确的写法是什么呢?
天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

全部回复(2)
伊谢尔伦

如果我没记错的话,标准里规定更新顺序是从左到右,变量优先。但是标准规定是一回事,DBMS 有没有严格遵守标准又是另一回事,不同的 DBMS 可能出来结果不一样。只有查了你用的 DBMS 的文档才能知道到底是什么情况。

保险的做法就是写两条 update,其实效率应该是非常接近的。

大家讲道理
update class ,student set class.class_id = '2011',student.class_id = class.class_id where `class`.class_name = '一班' && `student`.class_name= '一班'
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号