mysql update exists_mysql update注意

drop table a;

CREATE TABLE IF NOT EXISTS a (id int,员工 Nvarchar(10),年龄 int,职业 nvarchar(10)) ;

insert a select 1,  '001',    18  ,'教授' ;

insert a select 2,  '002' ,   18 , '教授' ;

insert a select 3,  '003'  ,  18,  '教授' ;

drop table b;

CREATE TABLE IF NOT EXISTS b(id int,代码 varchar(10),姓名 nvarchar(10),密码 int);

insert b select 1  ,'001',    '张三'  ,33 ;

insert b select 2 , '002' ,   '李四'  ,33 ;

insert b select 3,  '003'  ,  'aa'   , 33 ;

情况一:

错误:update a set 员工=(select 员工 from a where id=1) where id>2,因为不能同时对一个表查询和更新,换个名字就可以(如下)

正确:update a set 员工=(select 员工 from (select 员工 from a where id=1) as b) where id>2

情况二:

错误:udpate a set a.员工=b.代码 where a.员工 in (select 代码 from b)

正确:update a inner join b on a.员工=b.代码 set a.员工=b.姓名

情况三:

正确:update a set a.员工='测试' where a.员工 in (select 代码 from b)

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值