数据库系列&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');
现在我要将id
为10
的记录的serialno
和name
字段分别更新为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
被更新为了0
,name字段
并没有发生改变!!!
为什么会出现这种结果呢???
现在我们换个测试语句再试下(记得将刚才更新过的数据serialno
和名字 修改为原先的数据 serialno=20170319010001
,name=名字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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)