• MySQL :: MySQL 8.0 Reference Manual :: B.6.4.3 Problems with NULL Values https://dev.mysql.com/doc/refman/8.0/en/problems-with-null.html


    MySQL :: MySQL 8.0 Reference Manual :: B.6.4.3 Problems with NULL Values https://dev.mysql.com/doc/refman/8.0/en/problems-with-null.html

    MySQL 8.0 Reference Manual  /  ...  /  Problems with NULL Values

    B.6.4.3 Problems with NULL Values

    The concept of the NULL value is a common source of confusion for newcomers to SQL, who often think that NULL is the same thing as an empty string ''. This is not the case. For example, the following statements are completely different:

    mysql> INSERT INTO my_table (phone) VALUES (NULL);
    mysql> INSERT INTO my_table (phone) VALUES ('');

    Both statements insert a value into the phone column, but the first inserts a NULL value and the second inserts an empty string. The meaning of the first can be regarded as phone number is not known” and the meaning of the second can be regarded as the person is known to have no phone, and thus no phone number.”

    To help with NULL handling, you can use the IS NULL and IS NOT NULL operators and the IFNULL() function.

    In SQL, the NULL value is never true in comparison to any other value, even NULL. An expression that contains NULL always produces a NULL value unless otherwise indicated in the documentation for the operators and functions involved in the expression. All columns in the following example return NULL:

    mysql> SELECT NULL, 1+NULL, CONCAT('Invisible',NULL);

    To search for column values that are NULL, you cannot use an expr = NULL test. The following statement returns no rows, because expr = NULL is never true for any expression:

    mysql> SELECT * FROM my_table WHERE phone = NULL;

    To look for NULL values, you must use the IS NULL test. The following statements show how to find the NULL phone number and the empty phone number:

    mysql> SELECT * FROM my_table WHERE phone IS NULL;
    mysql> SELECT * FROM my_table WHERE phone = '';

    See Section 3.3.4.6, “Working with NULL Values”, for additional information and examples.

    You can add an index on a column that can have NULL values if you are using the MyISAMInnoDB, or MEMORY storage engine. Otherwise, you must declare an indexed column NOT NULL, and you cannot insert NULL into the column.

    When reading data with LOAD DATA INFILE, empty or missing columns are updated with ''. To load a NULL value into a column, use N in the data file. The literal word NULL may also be used under some circumstances. See Section 13.2.7, “LOAD DATA INFILE Syntax”.

    When using DISTINCTGROUP BY, or ORDER BY, all NULL values are regarded as equal.

    When using ORDER BYNULL values are presented first, or last if you specify DESC to sort in descending order.

    Aggregate (summary) functions such as COUNT()MIN(), and SUM() ignore NULL values. The exception to this is COUNT(*), which counts rows and not individual column values. For example, the following statement produces two counts. The first is a count of the number of rows in the table, and the second is a count of the number of non-NULL values in the age column:

    mysql> SELECT COUNT(*), COUNT(age) FROM person;

    For some data types, MySQL handles NULL values specially. If you insert NULL into a TIMESTAMP column, the current date and time is inserted. If you insert NULL into an integer or floating-point column that has the AUTO_INCREMENT attribute, the next number in the sequence is inserted.

     PREV   HOME   UP   NEXT 
     
     
  • 相关阅读:
    点击按钮生成遮罩层后这个按钮被遮住还可以点击解决办法
    关于jq的load不用回调获取其中dom元素方法
    移动端默认返回按键,使用h5+修改默认事件
    移动端解决input focus后键盘弹出,高度被挤压的问题
    模拟移动端上拉超过页面实际高度
    软工作业
    一周进度汇报
    alhpa阶段回顾
    一周进度汇报
    一周进度汇报
  • 原文地址:https://www.cnblogs.com/rsapaper/p/10098117.html
Copyright © 2020-2023  润新知