数据库系列&MySQL系列:Mysql Update语句 SET多字段时,使用 逗号连接和AND连接的区别

Mysql Update语句 SET多字段时,使用 逗号连接和AND连接的区别




Mysql Update语句 SET多字段时,使用 逗号连接和AND连接的区别

对于有经验的程序员都知道正常的UPDATE语句的格式应该是如下所示:

在这里插入图片描述

但往往一些经验比较欠缺的选手(就比如说我…)中在写SQL的时候,并无法瞬间写出标准格式的SQL语句。下面我就简单描述下我的个人经历!

表结构和表数据如下所示:

CREATE TABLE `coupon_pool` (
  `id` int(12) NOT NULL AUTO_INCREMENT,
  `pub_id` varchar(12) NOT NULL COMMENT '',
  `serialno` varchar(32) NOT NULL DEFAULT '' COMMENT '',
  `name` varchar(50) NOT NULL COMMENT '',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=15 DEFAULT CHARSET=utf8 COMMENT='测试表';
 
-- ----------------------------
-- Records of coupon_pool
-- ----------------------------
INSERT INTO `coupon_pool` VALUES ('10', '2017031901', '20170319010001', '名字1' );
INSERT INTO `coupon_pool` VALUES ('11', '2017031901', '20170319010002', '名字2');
INSERT INTO `coupon_pool` VALUES ('12', '2017031901', '20170319010003', '名字3');
INSERT INTO `coupon_pool` VALUES ('13', '2017031901', '20170319010004', '名字4');
INSERT INTO `coupon_pool` VALUES ('14', '2017031901', '20170319010005', '名字5');

现在我要将id10的记录的serialnoname字段分别更新为20170319010010和名字10

正确的UPDATE SQL语句,需要更新的字段之间使用逗号连接,如下所示:

UPDATE coupon_pool SET serialno = '20170319010010' , name = '名字10'  WHERE id = 10;

SQL执行结果如图:
在这里插入图片描述

测试使用的UPDATE SQL语句,使用AND来连接两个字段,如下所示:

UPDATE coupon_pool SET serialno = '20170319010010' AND name = '名字10'  WHERE id = 10;

在这里插入图片描述

更新结果serialno被更新为了0name字段并没有发生改变!!!

为什么会出现这种结果呢???

现在我们换个测试语句再试下(记得将刚才更新过的数据serialno和名字 修改为原先的数据 serialno=20170319010001name=名字1

UPDATE coupon_pool SET serialno = '20170319010001' AND name = '名字1'  WHERE id = 10;

在这里插入图片描述

如果还不知道怎么回事的话,打开Mysql,输入SHOW VARIABLES LIKE 'sql_mode';

然后再看下逻辑运算符 AND OR,应该就已经知道Mysql为什么允许执行用AND连接的SQL语句,以及Mysql再执行这种SQL语句的时候,实际如何解析的。

说到这里,还有不懂的兄弟的话,就留言吧。 2333333333







哎孩

Mysql Update语句 SET多字段时,使用 逗号连接和AND连接的区别

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

坦笑&&life

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值