Mysql 打破括号中的条件

Mysql break a condition in bracket

我有 2 个 mysql 查询:

SELECT * FROM table WHERE !(col1 = 'a' && col2 = 'b');

SELECT * FROM table WHERE col1 != 'a' AND col2 != 'b';

这个 return 不同的结果,我希望它像第二个语句(没有括号)。

大家有什么想法吗?,

提前致谢。

差异为 NULL 个值。这些 =<>.

都失败了

您可以使用 NULL 安全比较来解决这个问题,例如 <=>。所以:

WHERE NOT (col1 <=> 'a' AND col2 <=> 'b');

这两个查询不同,因此您获得了不同的结果。 您可以通过制作布尔值 table

来验证它

您的查询不相同。我认为你打算使用德摩根定律 (https://en.wikipedia.org/wiki/De_Morgan%27s_laws),但你没有正确分配。

正确的第一个陈述是:

SELECT * FROM table WHERE !(col1 = 'a' OR col2 = 'b');