我无法将以下人类语言转换为MySQL查询:
Select all rows except those with ColA equals '1' OR ColB equals '1'.
我试过了:
SELECT * FROM table WHERE ColA = '1' OR ColB = '1';
上面的代码将提取与上面的where子句匹配的记录(ColA ='1'或ColB ='1'),但是如何获得与之相反的结果?我希望我能正确地描述它。请让我知道是否令人困惑。
最佳答案
select
*
from
`myTable`
where
`colA` <> 1 and
`ColB` <> 1
仅当
colA
和colB
为NOT NULL
时,这才对您有用。如果存在带有colA = NULL
或colB = NULL
的行,则必须更改请求中的条件。select
*
from
`myTable`
where
(`colA` <> 1 or `colA` is null) and
(`colB` <> 1 or `colB` is null)
当然,这取决于您是否想要具有
NULL
值的行,但是许多人对此遗忘了。这是SQL Fiddle示例http://www.sqlfiddle.com/#!2/ea797/2
关于mysql - 选择除A或B以外的记录,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21321404/