首页 > 数据库技术 > 详细

MySQL中UPDATE语句里SET后使用AND的执行过程和结果分析

时间:2021-01-25 09:17:14      阅读:32      评论:0      收藏:0      [点我收藏+]

使用SQL中的UPDATE关键字更新多个字段值时,SET后面的更新字段应该使用逗号而不能用AND。虽然用AND不会报错,但会使更新结果错误,下面我将通过场景来分析当我们使用AND时SQL的执行过程和为什么更新结果只会是0/1/NULL;

场景示例

以下是场景更新前的原始查询数据如下:

技术分享图片

更新场景1

技术分享图片

更新场景2

技术分享图片

更新场景3

技术分享图片

 更新场景4

技术分享图片

 更新场景5

技术分享图片

更新场景6

技术分享图片

 问题发现

为什么结果都为0或者为1或者为Null呢?是不是有什么规律?

总结分析

 涉及到两个知识点

(1)当我们SET后使用AND而不是逗号时,第一个“=”前的字段的取值取自“=”后的逻辑运算的结果。我们拿场景1为例子:

 技术分享图片

(2)SQL中的空值(NULL)

SQL 中的空值( NULL )是一个特殊的值,代表了缺失/未知的数据或者不适用的情况。对于大多数的编程语言而言,逻辑运算的结果只有两种情况:真( Ture )或者假( False )。但是对于 SQL 而言,逻辑运算结果存在三种情况:真、假或者未知( Unknown )。对于 SQL 查询中的 WHERE 条件,只有结果为真的数据才会返回,结果为假或者未知都不会返回。因此, SQL 中的逻辑运算符 AND 、 OR 以及 NOT 的结果也存在三种情况。

AND 操作符的逻辑真值表如下:

技术分享图片

 其余的逻辑运算与null的结果请自行查阅相关文章。

希望本文章对您有帮助,您的转发、点赞是我的创作动力,十分感谢。

扫描下方二维码关注微信公众号,您会收到更多优质文章推送。

技术分享图片

MySQL中UPDATE语句里SET后使用AND的执行过程和结果分析

原文:https://www.cnblogs.com/liaowenhui/p/14322765.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!