MySQL查询 - 不等于此和此

Sha*_*ock 18 mysql

我得到了一些奇怪的结果,所以我需要检查自己......

SELECT *
FROM table
WHERE complete != 0
AND pending != 1
Run Code Online (Sandbox Code Playgroud)

需要说明的是,这些是允许的:

pending = 0, complete = 0
pending = 1, complete = 1
pending = 0, complete = 1
Run Code Online (Sandbox Code Playgroud)

不允许从我的查询中返回:

pending = 1, complete = 0
Run Code Online (Sandbox Code Playgroud)

我在这里想念的是什么......?

Dav*_*vin 37

尝试:

SELECT *
FROM table
WHERE NOT (complete = 0
AND pending = 1)
Run Code Online (Sandbox Code Playgroud)

要么

SELECT *
FROM table
WHERE !(complete = 0
AND pending = 1)
Run Code Online (Sandbox Code Playgroud)

编辑:我去看了看:http: //dev.mysql.com/doc/refman/4.1/en/expressions.html


mel*_*okb 8

你需要使用OR,而不是AND.你的表达会遗漏任何组合,其中complete = 0或者pending = 1限制太多.请尝试以下方法:

SELECT *
FROM Table
WHERE complete != 0 OR pending != 1;
                    ^^ change AND to OR
Run Code Online (Sandbox Code Playgroud)

示例:http://sqlize.com/G8j6sFqo09