mysql:当条件为on的列具有NULL值时选择查询

时间:2013-09-11 18:41:09

标签: mysql null conditional-statements

这是我的示例表:

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 |
+-------+------+

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

2 个答案:

答案 0 :(得分:2)

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

请记住,NULL实际上不是一个值,而更像是一个状态。 NULL = NULL始终为NULL != NULL。无论您对NULL使用什么都将是错误的。因此,当它评估age != 13NULL != 13时,不显示该行的预期行为。

答案 1 :(得分:0)

试试这个

     select * from test where age !=13  or age is NULL;