MySQL-在两台服务器上返回不同的true/false查询

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版本相同。(由完全相同的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';

| version       | 5.6.12 |
你应该检查一下接线员

官方文件指出:

NOT运算符的优先级使得诸如b和c之间的NOT a之类的表达式被解析为NOT(b和c之间的a)。在一些旧版本的MySQL中,表达式被解析为b和c之间的(而不是a)。旧的高优先级行为可以通过启用高优先级SQL模式获得

用小提琴来测试这种行为

顺便说一下,我建议比较
x!=y
而不是使用
not(x=y)