mysql set and_update语句set中也可以使用and关键字

我们平常写sql更新数据,常见都是下面这种吧

update student set no = '1', name = '张xx' where row_id = 3;但你是否有注意到,下面这条语句也是可以更新数据的

update student set no = '1' and name = '张xx' where row_id = 3;可能有朋友已经踩过这个坑,在mysql中,才会遇到这个问题,因为sqlserver和oracle这么写是会提示语法错误的。下面来看下mysql中这个and到底是何用意:

还是和上面一样,更新student表中row_id为3的这条数据的no和name字段,这条数据原本的值no是12,name是张天王,原始值如下图

cf53ed1ac21d779e2057008e553f608f.png

先查询看看原始值

d968bde17bdc37f7779ad34435fe225f.png

执行更新语句,set语句中no为13,name为张xx

644b3862a1c50ba6139556a4d3ba5715.png

执行更新语句,set语句中no为13,name为张天王

通过上面,我们可以看出,执行update语句时,no的值始终没有被更新成13,而是分别更新成了0和1,其中更新为0时name值为 张xx ,更新为1时name值为 张天王。

从中可以发现,and似乎可以理解为一种运算符(与)。name = '张xx' 时与数据库中 name = '张天王' 不同,所以为false,在代码中false对应的值就是0。name = '张天王' 时与数据库中的 name = '张天王'相同,所以为true,在代码中true对于的值就是1。

所以,在mysql中发现,如果set语句中用了and,千万别理解错了,它是不同于使用逗号连接的更新操作的,上诉正确的更新操作应该是

update student set no = '13' , name = '张xx' where row_id = 3问题虽然简单,但也是是一个知识点,没遇到可能不会注意到这个问题,遇到了不踩坑就行哈。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值