文章详情页
mysql - 使用update语句同时更新两个表的问题?
浏览:222日期:2022-06-16 10:31:11
问题描述
先贴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’
一开始我以为是赋值语句顺序的问题,于是我把两个赋值语句调换了顺序,发现效果还是不变。。。为什么呢?正确的写法是什么呢?
问题解答
回答1:如果我没记错的话,标准里规定更新顺序是从左到右,变量优先。但是标准规定是一回事,DBMS 有没有严格遵守标准又是另一回事,不同的 DBMS 可能出来结果不一样。只有查了你用的 DBMS 的文档才能知道到底是什么情况。
保险的做法就是写两条 update,其实效率应该是非常接近的。
回答2:update class ,student set class.class_id = ’2011’,student.class_id = class.class_id where `class`.class_name = ’一班’ && `student`.class_name= ’一班’
上一条:mysql - 求纠正一个sql语句下一条:MySQL 书籍推荐
相关文章:
1. 如何解决docker宿主机无法访问容器中的服务?2. javascript - webpack构建工具重构代码的流程是怎么样的?3. Java中main方法里面的参数一定要是String []args吗?4. css3 - 求css页面解决方案5. html5 - 自己的H5页面如何集成支付宝支付6. 系统重装后,恢复mysql5.5?7. javascript - 想做一个canvas的触摸画板,但屏幕会在画的时候滚来滚去,如何阻止?8. mysql 5个left关键 然后再用搜索条件 几千条数据就会卡,如何解决呢9. HTML5表单必填属性设置自定义验证消息?10. mysql - sql 左连接结果union右连接结果,导致重复性计算怎么解决?
排行榜

网公网安备