这是我的示例表:
CREATE TABLE test(
name VARCHAR(35),
age INT(3))
还有一些价值观:
insert into test values ('alex', 13);
insert into test values ('dan', 17);
insert into test (name) values ('pete');
insert into test (name) values ('david');
当我使用带有'age'列条件的SELECT查询时:
select * from test where age!=13;
我得到的结果是:
+------+------+
| name | age |
+------+------+
| dan | 17 |
+------+------+
但是我想要所有带有年龄的记录!= 13其中包括年龄为IS NULL的记录:
+-------+------+
| name | age |
+-------+------+
| dan | 17 |
| pete | NULL |
| david | NULL |
+-------+------+
我怎样才能得到我想要的东西?感谢您的回复。
答案 0 :(得分:2)
SELECT * FROM test WHERE age!=13 OR age IS NULL;
请记住,NULL实际上不是一个值,而更像是一个状态。 NULL = NULL
始终为NULL != NULL
。无论您对NULL
使用什么都将是错误的。因此,当它评估age != 13
到NULL != 13
时,不显示该行的预期行为。
答案 1 :(得分:0)
试试这个
select * from test where age !=13 or age is NULL;