MySQL-在两台服务器上返回不同的true/false查询
我对这件事感到困惑 两台服务器上运行的MySQL版本相同。(由完全相同的rpm构建)-在开发过程中的某个地方,一些开发人员改变了一些东西 服务器1:MySQL-在两台服务器上返回不同的true/false查询,mysql,sql,Mysql,Sql,我对这件事感到困惑 两台服务器上运行的MySQL版本相同。(由完全相同的rpm构建)-在开发过程中的某个地方,一些开发人员改变了一些东西 服务器1: mysql> select ( not 1 = 2 ); 0 1 row in set (0.00 sec) 服务器2: mysql> select ( not 1 = 2 ); 1 1 row in set (0.00 sec) 两台服务器: mysql> sHOW VARIABLES LIKE 'version';
mysql> select ( not 1 = 2 );
0
1 row in set (0.00 sec)
服务器2:
mysql> select ( not 1 = 2 );
1
1 row in set (0.00 sec)
两台服务器:
mysql> sHOW VARIABLES LIKE 'version';
| version | 5.6.12 |
你应该检查一下接线员
官方文件指出:
NOT运算符的优先级使得诸如b和c之间的NOT a之类的表达式被解析为NOT(b和c之间的a)。在一些旧版本的MySQL中,表达式被解析为b和c之间的(而不是a)。旧的高优先级行为可以通过启用高优先级SQL模式获得
用小提琴来测试这种行为
顺便说一下,我建议比较x!=y
而不是使用not(x=y)