MySQL一条语句实现同时查询和修改-阿里云开发者社区

开发者社区> 数据库> 正文
登录阅读全文

MySQL一条语句实现同时查询和修改

简介:

MySQL一条语句实现同时查询和修改


171547617.jpg



现在想仅执行一条mysql语句得到:查询到sid=2的用户,然后修改gid的值为123。

简单这样写:

1
UPDATE `userSET `gid`='123' WHERE  id IN (SELECT id FROM `userWHERE sid=2)

肯定会报错:

错误码: 1093

You can't specify target table 'user' for update in FROM clause

错误提示就是说,不能先select出同一表中的某些值,再update这个表(在同一语句中) 

解决办法:

1
UPDATE `userAS INNER JOIN (SELECT id FROM `userWHERE `sid`=2) AS ON A.id=B.id SET A.gid='123'



      本文转自许琴 51CTO博客,原文链接:http://blog.51cto.com/xuqin/1197566,如需转载请自行联系原作者





版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享: