我无法将以下人类语言转换为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'),但如何得到与此相反的结果?我希望我正确地描述它。如果它令人困惑,请告诉我。
答案 0 :(得分:1)
SELECT * FROM table
WHERE ColA <> '1'
AND ColB <> '1'
或
SELECT * FROM table
WHERE NOT (ColA = '1' OR ColB = '1')
答案 1 :(得分:0)
SELECT * FROM table WHERE ColA <> '1' && ColB <> '1';
答案 2 :(得分:0)
SELECT * FROM table WHERE ColA <> 1 AND ColB <> 1;
或者如果您想放大列表(1,2,3)而不是仅放置(1),请尝试:
SELECT * FROM table WHERE ColA NOT IN (1,2,3) AND ColB NOT IN (1,2,3);
答案 3 :(得分:0)
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小提琴示例http://www.sqlfiddle.com/#!2/ea797/2