![]() |
1
2
通过将所有前导数字解释为数字,文本值被转换为整数值。如果没有数字,则强制转换为0。 所以:
|
![]() |
2
2
将字符串文字与数值进行比较时,MySQL还必须将字符串文字转换为数值,以便进行比较。由于“a”不是数字,因此结果值为零,因此相等。比较“b”和“c”时,两个操作数都是字符串,因此不会进行转换,结果为false(0)。 代码中的第一个表达式可以重写为:
因为('a'='b')返回0,所以在执行该操作之后,您的表达式将被解释为
因为我上面解释的原因,所以是1。顺便说一下,这个表达式:
返回false,因为('a'=0)返回1,然后(1='c')返回0。 |
![]() |
3
1
我相信MySQL调用
|
![]() |
4
1
见 this page 在MySQL文档中。 “b”=“c”情况受以下规则管辖:
因为它们是不同的字符串,所以结果是错误的。 “a”=0的情况受以下规则的约束:
两边都是将比较转换为浮点数,并且由于“a”不包含任何数字,因此它的计算结果为零,右侧的数字0也是如此,因此它们被视为相等。 |
![]() |
hello_programmers · Mysql从其他表输出一列 1 年前 |
![]() |
Community wiki · 这个MySQL语句出了什么问题? 1 年前 |
![]() |
Community wiki · 优化从同一表中提取的多列的查询 1 年前 |
![]() |
Popo · Sql查询:返回数据库中不可用的where条件 1 年前 |
|
Hamdan Nuramdani · 对账单中一周内不同表中的数据求和 1 年前 |
|
Kugelfisch · 用php为数据库加密数据 1 年前 |