M○○○○ySQL中UPDATE语句里SET后使用AND的执行过程○和结果分析-爱游戏软件资讯

M○○○○ySQL中UPDATE语句里SET后使用AND的执行过程○和结果分析-爱游戏软件资讯
[标签:标题]
○○○○○○

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

场○○○○景示例

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

更新场景1○

更新场景2

更新场景3

更新场景4

○○○○

更新场景5

更新场景6

问题发现

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

总结分析

涉及到两个知识点

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

(2)SQL中的空值(NULL)

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

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

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