《零基础》MySQL NULL 值处理(二十一)

《零基础》MySQL NULL 值处理(二十一)MySQL使用SQLSELECT命令及WHERE子句来读取数据表中的数据,但是当提供的查询条件字段为NULL时,该命令可能就无法正常工作。为了处理这种情况,MySQL提供了三大运算符:ISNULL:当列的值是NULL,此运算符返回true。 ISNOTNULL:当列的值不为NULL,运算符返回true。 <=>:比较操作符(不同于=运算符),当比较的的两个值相等或者都为NULL时返回true。关于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)永远返回 NULL,即 NULL = NULL 返回 NULL 。

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

注意:

select * , columnName1+ifnull(columnName2,0) from tableName;
columnName1,columnName2 为 int 型,当 columnName2 中,有值为 null 时,columnName1+columnName2=null, ifnull(columnName2,0) 把 columnName2 中 null 值转为 0。


在命令提示符中使用 NULL 值

以下实例中假设数据库 RUNOOB 中的表 runoob_test_tbl 含有两列 runoob_author 和 runoob_count, runoob_count 中设置插入NULL值。

实例

尝试以下实例:

创建数据表 runoob_test_tbl

root@host# mysql -u root -p password;
Enter password:*******
mysql> use RUNOOB;
Database changed
mysql> create table runoob_test_tbl
    -> (
    -> runoob_author varchar(40) NOT NULL,
    -> runoob_count  INT
    -> );
Query OK, 0 rows affected (0.05 sec)
mysql> INSERT INTO runoob_test_tbl (runoob_author, runoob_count) values ('RUNOOB', 20);
mysql> INSERT INTO runoob_test_tbl (runoob_author, runoob_count) values ('菜鸟教程', NULL);
mysql> INSERT INTO runoob_test_tbl (runoob_author, runoob_count) values ('Google', NULL);
mysql> INSERT INTO runoob_test_tbl (runoob_author, runoob_count) values ('FK', 20);
 
mysql> SELECT * from runoob_test_tbl;
+---------------+--------------+
| runoob_author | runoob_count |
+---------------+--------------+
| RUNOOB        | 20           |
| 菜鸟教程  | NULL         |
| Google        | NULL         |
| FK            | 20           |
+---------------+--------------+
4 rows in set (0.01 sec)

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

mysql> SELECT * FROM runoob_test_tbl WHERE runoob_count = NULL;
Empty set (0.00 sec)
mysql> SELECT * FROM runoob_test_tbl WHERE runoob_count != NULL;
Empty set (0.01 sec)

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

mysql> SELECT * FROM runoob_test_tbl WHERE runoob_count IS NULL;
+---------------+--------------+
| runoob_author | runoob_count |
+---------------+--------------+
| 菜鸟教程  | NULL         |
| Google        | NULL         |
+---------------+--------------+
2 rows in set (0.01 sec)
 
mysql> SELECT * from runoob_test_tbl WHERE runoob_count IS NOT NULL;
+---------------+--------------+
| runoob_author | runoob_count |
+---------------+--------------+
| RUNOOB        | 20           |
| FK            | 20           |
+---------------+--------------+
2 rows in set (0.01 sec)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/137967.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • mysql jdbc url设置时区

    mysql jdbc url设置时区jdbcurljdbc:mysql://59.110.137.112:3306/answer?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true设置时区设置时区时,添加serverTimezone参数,比如serverTimezone

  • 在报关的过程中会不会出现两个商检

    在报关的过程中会不会出现两个商检问题:1、我刚接触报关,我想知道在报检后如果检验检疫局要商检,那么在接下来的报关过程中我们还会再要商检吗?2、还有我想知道法检是指哪些检验,三检和法检有什么区别,我知道三检包括商检那么法检报不包括呢?回答:1.只有报检手续都办好了,出具通关单后,凭通关单才可以报关。报关过程和商检已经没有关系了。报关中不存在两个商检。但是商检整个流程会分别在报关前后完成。所以,可能让你混淆以为是两个商检。

  • JAVA英文文献_java毕业论文参考文献

    JAVA英文文献_java毕业论文参考文献JAVA编程思想英文参考文献和翻译时间:2016-11-1514:44来源:毕业论文虽然java是基于C++基础上的,但是它更是纯粹的面向对象语“Ifwespokeadifferentlanguage,wewouldperceiveasomewhatdifferentworld.”3670LudwigWittgenstein(1889-1951)Althoughit…

  • css3元素简单的闪烁效果(html5 jquery)

    css3Animation:@-webkit-keyframestwinkling{/*透明度由0到1*/0%{opacity:0;/*透明度为0*/}100%{opacity:1

    2021年12月20日
  • tty是啥_linuxtty中文

    tty是啥_linuxtty中文1.gcctbzftp: ftp://ftp.int.ru/pub/FreeBSD/ports/i386/packages-8-stable/lang/2.mountcdrom:mount/dev/hdc/mnt/cdrom InstallttylinuxinVritualBox1.downloadhttp://ttylinux.net/Downlo…

  • Qt css颜色对照表

    Qt css颜色对照表css颜色代码对照FFFFFF#DDDDDD#AAAAAAFFFFFF#DDDDDD#AAAAAA#888888#666666#444444#000000#FFB7DD#FF88C2#FF44AA#FF0088#C10066#A20055#8C0044#FFCCCC#FF8888#FF3333#FF0000#CC0000#AA0000#880000#FFC8B4#FFA488#FF7744

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号