`
cocos
  • 浏览: 400277 次
  • 性别: Icon_minigender_1
  • 来自: 福州
社区版块
存档分类
最新评论

mysql null

阅读更多
mysql> select 0 is null, 0 is not null,'' is null, '' is not null;

+-----------+---------------+------------+----------------+
| 0 is null | 0 is not null | '' is null | '' is not null |
+-----------+---------------+------------+----------------+
|         0 |             1 |          0 |              1 |
+-----------+---------------+------------+----------------+
1 row in set (0.00 sec)


进行NULL处理,可使用IS NULL和IS NOT NULL操作符以及IFNULL()函数。

查找NULL值,必须使用IS NULL测试

在SQL中,NULL值与任何其它值的比较(即使是NULL)永远不会为“真”。包含NULL的表达式总是会导出NULL值,除非在关于操作符的文档中以及表达式的函数中作了其他规定。下述示例中的所有列均返回NULL:

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

+------+--------+--------------------------+
| NULL | 1+NULL | CONCAT('Invisible',NULL) |
+------+--------+--------------------------+
| NULL |   NULL | NULL                     |
+------+--------+--------------------------+
1 row in set (0.02 sec)


如果你正在使用MyISAM、InnoDB、BDB、或MEMORY存储引擎,能够在可能具有NULL值的列上增加1条索引。如不然,必须声明索引列为NOT NULL,而且不能将NULL插入到列中。

用LOAD DATA INFILE读取数据时,对于空的或丢失的列,将用''更新它们。如果希望在列中具有NULL值,应在数据文件中使用\N。在某些情况下,也可以使用文字性单词“NULL”。请参见13.2.5 “LOAD DATA INFILE语法”。

使用DISTINCT、GROUP BY或ORDER BY时,所有NULL值将被视为等同的。

使用ORDER BY时,首先将显示NULL值,如果指定了DESC按降序排列,NULL值将最后显示。

对于聚合(累计)函数,如COUNT()、MIN()和SUM(),将忽略NULL值。对此的例外是COUNT(*),它将计数行而不是单独的列值。例如,下述语句产生两个计数。首先计数表中的行数,其次计数age列中的非NULL值数目:

mysql> SELECT COUNT(*), COUNT(age) FROM person;
对于某些列类型,MySQL将对NULL值进行特殊处理。如果将NULL插入TIMESTAMP列,将插入当前日期和时间。如果将NULL插入具有AUTO_INCREMENT属性的整数列,将插入序列中的下一个编号。

分享到:
评论

相关推荐

    MySQL NULL 值处理实例详解

    MySQL NULL 值处理 我们已经知道MySQL使用 SQL SELECT 命令及 WHERE 子句来读取数据表中的数据,但是当提供的查询条件字段为 NULL 时,该命令可能就无法正常工作。 为了处理这种情况,MySQL提供了三大运算符: IS ...

    MySQL NULL 值处理

    MySQL NULL 值处理 我们已经知道 MySQL 使用 SQL SELECT 命令及 WHERE 子句来读取数据表中的数据,但是当提供的查询条件字段为 NULL 时,该命令可能就无法正常工作。 为了处理这种情况,MySQL提供了三大运算符: IS ...

    Mysql NULL导致的神坑

    本篇文章将深入探讨MySQL中`NULL`值与比较运算符之间的交互及其可能带来的问题。 1. **NULL与任何比较运算符的结果** 当我们尝试用比较运算符(如`>`、`、`>=`、`、`=`、`<>`或`!=`)来比较`NULL`值时,结果并不会...

    MySQLNULL值简介

    在MySQL中,NULL值意味着未知值。NULL值不是零或空字符”值。NULL值不等于其自身值。如果将NULL值与另一个NULL值或任何其他值进行比较,则结果为NULL,因为每个NULL值的值都是未知的。通常,使用NULL值来表示数据...

    MySQL null与not null和null与空值的区别详解

    MySQL数据库在设计表结构时,`NULL` 和 `NOT NULL` 是两个重要的字段约束,它们在数据存储和查询中有着显著的区别。理解这些差异对于优化数据库性能和编写正确的SQL语句至关重要。 首先,我们需要明确“空值”和...

    Mysql实现null值排在最前/最后的方法示例

    我们已经知道 MySQL 使用 SQL SELECT 命令及 WHERE 子句来读取数据表中的数据,但是当提供的查询条件字段为 NULL 时,该命令可能就无法正常工作。 为了处理这种情况,MySQL提供了三大运算符: IS NULL: 当列的值是 ...

    为什么不建议给MySQL设置Null值?《死磕MySQL系列 十八》.doc

    MySQL 中 Null 值的处理和风险 在 MySQL 中, Null 值的存在可能会对数据库的性能和数据的准确性产生影响。在本期中,我们将讨论为什么不建议给 MySQL 设置 Null 值,并分析 Null 值对数据统计的影响。 1. Null 值...

    MySQL中的唯一性约束与NULL详解

    这可以从MySQL官方文档中得到确认:“A UNIQUE index allows multiple NULL values for columns that can contain NULL.”这意味着,即使你设置了唯一性约束,如果插入的记录包含NULL值,数据库不会抛出“Duplicate ...

    mysql中null(IFNULL,COALESCE和NULLIF)相关知识点总结

    本文实例讲述了mysql中null(IFNULL,COALESCE和NULLIF)相关知识点。分享给大家供大家参考,具体如下: 在MySQL中,NULL值表示一个未知值,它不同于0或空字符串”,并且不等于它自身。 我们如果将NULL值与另一个...

    NOT NULL 和NULL

    如果既不指定NULL也不指定NOT NULL,列被认为指定了NULL 在 MySQL 中, 为一个 NOT NULL 字段设置 NULL 值 , 它并不会出错, MySQL 会自动将 NULL值转化为该字段的默认值, 那怕是你在表定义时没有...

    mysql中将null值转换为0的语句

    在MySQL数据库中,`NULL`值表示未知或者不存在的数据,它与数字0、空字符串等概念完全不同。在处理数据时,有时我们希望将`NULL`值转换为其他有意义的值,比如0。以下是对如何在MySQL中将`NULL`值转换为0的详细解释...

    MySQL中NULL对索引的影响1

    MySQL中NULL对索引的影响 MySQL中NULL对索引的影响是一个重要的主题,了解这个主题可以帮助我们更好地使用MySQL数据库。很多人认为,如果某一列中含有NULL,那么包含该列的索引就无效了。但是,经过测试和官方文档...

    详解MySQL中的NULL值

    在MySQL数据库中,`NULL`值是一个特殊的存在,表示数据未知或者不存在。处理`NULL`值时,需要注意一些特定的规则和操作符。本篇文章将深入解析MySQL中的`NULL`值及其相关的查询方法。 首先,当尝试使用`= NULL`或`!...

    MySQL里的IFNULL、NULLIF和ISNULL用法

    用到了MySql里的isnull才发现他和MSSQL里的还是有点区别,现在简单总结一下:  mysql中isnull,ifnull,nullif的用法如下:  isnull(expr) 的用法:如expr 为null,那么isnull() 的返回值为 1,否则返回值为 0。...

    MySQL中NULL对索引的影响深入讲解

    在MySQL数据库中,`NULL`值对于索引的影响是一个经常被讨论的话题。许多开发者和数据库管理员认为,如果一列中存在`NULL`值,那么包含该列的索引就会变得无效,但实际情况并非如此简单。MySQL实际上允许在含有`NULL`...

    windows mysql8.0 解决 secure-file-priv null的问题

    在使用Windows上的MySQL 8.0时,可能会遇到一个安全相关的配置问题,即`secure_file_priv`变量的值为null。`secure_file_priv`变量是MySQL服务器用来限制数据导入和导出路径的一项安全措施,其默认值为null,意味着...

    详解mysql不等于null和等于null的写法

    本篇文章将详细介绍在MySQL中如何正确地查询`NULL`值以及空字符。 1. **理解NULL的概念** `NULL`在MySQL中不是代表一个空字符串或者零,而是一个特殊的标记,表示字段没有值。在比较时,`NULL`不能直接与其他任何...

Global site tag (gtag.js) - Google Analytics