Mysql

关注公众号 jb51net

关闭
首页 > 数据库 > Mysql > MySQL查找NULL值

MySQL查找NULL值的全面指南

作者:程式员阿波

在数据库中,NULL 值表示缺失或未知的数据,在 MySQL 中,我们可以使用特定的查询语句来查找包含 NULL 值的数据,本文将详细介绍如何在 MySQL 中查找 NULL 值,并提供相关实例和代码片段,需要的朋友可以参考下

前言

在数据库中,NULL 值表示缺失或未知的数据。在 MySQL 中,我们可以使用特定的查询语句来查找包含 NULL 值的数据。本文将详细介绍如何在 MySQL 中查找 NULL 值,并提供相关实例和代码片段。

准备工作

首先,确保你已经安装了 MySQL 数据库并创建了一个数据库和表。以下是一个简单的示例:

CREATE DATABASE mydatabase;
USE mydatabase;

CREATE TABLE users (
  id INT PRIMARY KEY,
  name VARCHAR(50),
  age INT,
  email VARCHAR(100)
);

INSERT INTO users (id, name, age, email)
VALUES (1, 'John', 25, 'john@example.com'),
       (2, 'Jane', NULL, 'jane@example.com'),
       (3, 'Mike', 30, NULL);

上述代码创建了一个名为 users 的表,其中包含了一些用户数据,包括姓名、年龄和电子邮件。其中,年龄和电子邮件字段可能包含 NULL 值。

查找 NULL 值

在 MySQL 中,我们可以使用 IS NULL 或 IS NOT NULL 运算符来查找包含 NULL 值的数据。以下是一些常见的查询示例:

1. 查找所有包含 NULL 值的行

要查找表中所有包含 NULL 值的行,可以使用以下查询语句:

SELECT * FROM users WHERE age IS NULL OR email IS NULL;

这将返回所有年龄或电子邮件为 NULL 的行。

2. 查找特定列中的 NULL 值

如果你只想查找特定列中的 NULL 值,可以使用以下查询语句:

SELECT * FROM users WHERE age IS NULL;

这将返回所有年龄为 NULL 的行。

3. 查找不包含 NULL 值的行

如果你想查找不包含 NULL 值的行,可以使用以下查询语句:

SELECT * FROM users WHERE age IS NOT NULL AND email IS NOT NULL;

这将返回所有年龄和电子邮件都不为 NULL 的行。

拓展知识:MySQL中null值和空值查询

null和' '的区别 在MySQL中 null 值和 ' '的如何查询实例表如下空字符串 ' 'null值IFNULL(expr1,expr2)占用空间

实例表如下

在这里插入图片描述

空字符串 ’ ’

空字符串表示的是该列为空,一般查询这种会使用到 = ’ ’ 或者 !=’ ’

SELECT * FROM user WHERE sex= ' '

在这里插入图片描述

SELECT * FROM user WHERE sex!= ' '

在这里插入图片描述

== 注意( = ’ ’ 和 != ’ ’ 都查不出值null的数据的 ) ==

null值

首先我们要注意一点的就是null不是任何的数据类型,所以null就不是空的字符串,当我们可能在平时 非空查询中如果使用 !=’ ’ 是查询不出来某个字段值为null的这一条数据的.null值得可以这么查询 ,但是

SELECT * FROM user WHERE sex is NULL
SELECT * FROM user WHERE sex is NOT NULL

is Null的查询结果如下:(只能查出结果为null的数据)

在这里插入图片描述

is NOT NULL 查询结果如下(查出来的都是结果不为null的数据, 空字符串 ’ ’ 的也可以查出来)

在这里插入图片描述

那么问题来了,当我们既想查为空字符串的又想查null的时候怎么办那,别着急,咱们接着往下看

IFNULL(expr1,expr2)

IFNULL(expr1,expr2) 就能够很好的处理当这个问题了,该函数的用法是 如果expr1 这个字段的值为null时,给其赋值为expr2

SELECT * FROM user WHERE IFNULL(sex,'') !='man'
SELECT * FROM user WHERE IFNULL(sex,'') <> 'man'
SELECT * FROM user WHERE sex != 'man' or sex is NULL

在IFNULL之后使用 != 和 <> 或者 多条件查询都可以实现想要的效果,但是多条件查询的效率会比前两个慢一点,所以在数据量大的时候还是建议直接使用前两种

在这里插入图片描述

占用空间

在这里插入图片描述

有该执行效果可以看出,NULL的是没有长度的, ’ ’ 空字符串的长度为0

总结

通过以上介绍,我们了解了如何在 MySQL 中查找包含 NULL 值的数据。你可以根据具体的需求选择适当的查询语句来满足你的需求。希望本文能够帮助你更好地理解和应用 MySQL 中的 NULL 值查询功能。

到此这篇关于MySQL查找NULL值的全面指南的文章就介绍到这了,更多相关MySQL查找NULL值内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文