1

这是我的示例表:

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');

当我使用带有“年龄”列条件的 SELECT 查询时:

select * from test where age!=13;

我得到的结果是:

+------+------+
| name | age  |
+------+------+
| dan  |   17 |
+------+------+

但是我想要所有带有 age!=13 的记录,其中也包括带有 age IS NULL 的记录:

+-------+------+
| name  | age  |
+-------+------+
| dan   |   17 |
| pete  | NULL |
| david | NULL |
+-------+------+

我怎样才能得到我想要的?感谢您的任何回复。

4

2 回答 2

2
SELECT * FROM test WHERE age!=13 OR age IS NULL;

请记住,NULL 并不是一个真正的值,而更像是一个状态。NULL = NULL总是假的NULL != NULL。无论您使用什么都NULL将永远是错误的。因此,当它评估age != 13为时NULL != 13,不显示该行是预期的行为。

于 2013-09-11T18:43:14.427 回答
0

尝试这个

     select * from test where age !=13  or age is NULL;
于 2013-09-11T18:42:04.883 回答