您的位置:首页 > 数据库 > MySQL

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

2013-05-10 17:21 330 查看
MySQL一条语句实现同时查询和修改



现在想仅执行一条mysql语句得到:查询到sid=2的用户,然后修改gid的值为123。
简单这样写:
UPDATE `user` SET `gid`='123' WHERE  id IN (SELECT id FROM `user` WHERE sid=2)
肯定会报错:
错误码: 1093
You can't specify target table 'user' for update in FROM clause
错误提示就是说,不能先select出同一表中的某些值,再update这个表(在同一语句中)
解决办法:
UPDATE `user` AS A INNER JOIN (SELECT id FROM `user` WHERE `sid`=2) AS B ON A.id=B.id SET A.gid='123'
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mysql
相关文章推荐