Mysql选择在哪里

时间:2015-12-06 01:46:59

标签: mysql where

Mysql选择值90和45但不是90,类型1这里是我的样本表

value   |   type    |   status
90          1           0
90          1           1
90          0           0
90          0           1
45          1           0
45          1           1

我的代码未获得所需的输出

SELECT * FROM table WHERE type IN (1, 0) AND value != 90

所需的输出是:

value   |   type    |   status
90          0           0
90          0           1
45          1           0
45          1           1

2 个答案:

答案 0 :(得分:2)

你正在寻找一个相当基本的复合条件 - 你想要“所有类型= 0”或“除了值= 90时所有类型= 1”,这将表示为

WHERE (type = 0) OR (type = 1 AND value != 90)

(基于您自己的查询)或

WHERE (value = 45) OR (VALUE = 90 AND type != 1)

(根据你的第一句话。)

答案 1 :(得分:1)

你可以尝试类似的东西:

create table test (val int, type int, status int);
insert into test values 
(90          ,1          ,0),
(90          ,1           ,1),
(90          ,0           ,0),
(90          ,0           ,1),
(45          ,1           ,0),
(45          ,1           ,1);

select *
from test 
where (val = 90 and type != 1) or val = 45;

| val | type | status |
|-----|------|--------|
|  90 |    0 |      0 |
|  90 |    0 |      1 |
|  45 |    1 |      0 |
|  45 |    1 |      1 |

SQLFiddle示例:http://sqlfiddle.com/#!9/052c0/1