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');
我有 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');