【问题标题】:mysql: select query when the column that has condition on has NULL valuemysql:当具有条件的列具有NULL值时选择查询
【发布时间】:2013-09-15 22:20:04
【问题描述】:

这是我的示例表:

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

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

【问题讨论】:

    标签: mysql null conditional-statements


    【解决方案1】:
    SELECT * FROM test WHERE age!=13 OR age IS NULL;
    

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

    【讨论】:

    • 你是给了新的东西还是只是重复我的回答?你是抄袭过去的医生吗?
    • @echo_Me 您通过复制粘贴我的答案更新了您的答案。你也是复制粘贴的医生吗?
    • 我没有复制粘贴我将=更改为is
    【解决方案2】:

    试试这个

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

    【讨论】:

      猜你喜欢
      • 2023-02-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-09
      相关资源
      最近更新 更多