这是我的示例表:
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 |
+------+------+
但是我想要age!=13的所有记录,其中包括age为NULL的记录:
+-------+------+
| name | age |
+-------+------+
| dan | 17 |
| pete | NULL |
| david | NULL |
+-------+------+
我怎样才能得到我想要的?谢谢你的回复。
3条答案
按热度按时间vd8tlhqk1#
请记住,NULL实际上并不是一个值,而更像是一种状态。
NULL = NULL
作为NULL != NULL
始终为false。无论您对NULL
使用什么,它始终为false。因此,当它将age != 13
计算为NULL != 13
时,不显示该行是预期的行为。hkmswyz62#
试试这个
g0czyy6m3#
使用
<=>
运算符。结果: