zoukankan      html  css  js  c++  java
  • MySQL的NULL值处理

    我们已经知道MySQL使用 SQL SELECT 命令及 WHERE 子句来读取数据表中的数据,但是当提供的查询条件字段为 NULL 时,该命令可能就无法正常工作。

    为了处理这种情况,MySQL提供了三大运算符:

    • IS NULL: 当列的值是NULL,此运算符返回true。
    • IS NOT NULL: 当列的值不为NULL, 运算符返回true。
    • <=>: 比较操作符(不同于=运算符),当比较的的两个值为NULL时返回true。

    关于 NULL 的条件比较运算是比较特殊的。你不能使用 = NULL 或 != NULL 在列中查找 NULL 值

    在MySQL中,NULL值与任何其它值的比较(即使是NULL)永远返回false,即 NULL = NULL 返回false 。

    MySQL中处理NULL使用IS NULL和IS NOT NULL运算符。

     

    实例

    尝试以下实例:

    root@host# mysql -u root -p password;

    Enter password:*******

    mysql> use TUTORIALS;

    Database changed

    mysql> create table tcount_tbl

        -> (

        -> tutorial_author varchar(40) NOT NULL,

        -> tutorial_count  INT

        -> );

    Query OK, 0 rows affected (0.05 sec)

    mysql> INSERT INTO tcount_tbl

        -> (tutorial_author, tutorial_count) values ('mahran', 20);

    mysql> INSERT INTO tcount_tbl

        -> (tutorial_author, tutorial_count) values ('mahnaz', NULL);

    mysql> INSERT INTO tcount_tbl

        -> (tutorial_author, tutorial_count) values ('Jen', NULL);

    mysql> INSERT INTO tcount_tbl

        -> (tutorial_author, tutorial_count) values ('Gill', 20);

     

    mysql> SELECT * from tcount_tbl;

    +-----------------+----------------+

    | tutorial_author | tutorial_count |

    +-----------------+----------------+

    | mahran          |             20 |

    | mahnaz          |           NULL |

    | Jen             |           NULL |

    | Gill            |             20 |

    +-----------------+----------------+

    4 rows in set (0.00 sec)

     

    mysql>

    以下实例中你可以看到 = 和 != 运算符是不起作用的:

    mysql> SELECT * FROM tcount_tbl WHERE tutorial_count = NULL;

    Empty set (0.00 sec)

    mysql> SELECT * FROM tcount_tbl WHERE tutorial_count != NULL;

    Empty set (0.01 sec)

    查找数据表中 tutorial_count 列是否为 NULL,必须使用IS NULL和IS NOT NULL,如下实例:

    mysql> SELECT * FROM tcount_tbl 

        -> WHERE tutorial_count IS NULL;

    +-----------------+----------------+

    | tutorial_author | tutorial_count |

    +-----------------+----------------+

    | mahnaz          |           NULL |

    | Jen             |           NULL |

    +-----------------+----------------+

    2 rows in set (0.00 sec)

    mysql> SELECT * from tcount_tbl 

        -> WHERE tutorial_count IS NOT NULL;

    +-----------------+----------------+

    | tutorial_author | tutorial_count |

    +-----------------+----------------+

    | mahran          |             20 |

    | Gill            |             20 |

    +-----------------+----------------+

    2 rows in set (0.00 sec)

  • 相关阅读:
    触发事件trigger
    淘宝天猫关键词SEO优化
    Linux下升级python
    python3多线程趣味详解
    python之selenium
    1kkk
    python之lxml(xpath)
    python中时间日期格式化符号
    唯品会数据采集-异步瀑布流
    python数据库操作pymysql
  • 原文地址:https://www.cnblogs.com/liujiaq/p/5643703.html
Copyright © 2011-2022 走看看