选择A或B以外的记录

时间:2014-01-23 23:22:14

标签: mysql select where records except

我无法将以下人类语言转换为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'),但如何得到与此相反的结果?我希望我正确地描述它。如果它令人困惑,请告诉我。

4 个答案:

答案 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

仅当colAcolBNOT NULL时,此功能才适用于您。如果有colA = NULLcolB = 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