淘先锋技术网

首页 1 2 3 4 5 6 7
mysql查询多值,NULL值如何处理?

01前言

MySQL NULL值如何处理?当看到这个话题的时候,我有点蒙圈,NULL如何处理?我的第一反应是想怎么处理就怎么处理咯,不太明白想问什么?后面想一想,还是不怎么明白。只能通过我的经验说说这个NULL值,希望是你想要的答案!

02简单聊一聊

1.NULL值出现在哪?

我们的库表某个字段或某部分字段为空。

2.怎么处理?如何查询它?

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 运算符。

03看个例子

-- 新建一张表,并插入四条数据

create table `csj_class`(

`id` INT,

`name` varchar(20),

`classmates` INT

);

INSERT into csj_class (id,name) values

(1,'one',20),

(2,'two',15);

INSERT into csj_class (id,name) values (3,'three');

INSERT into csj_class (name,classmates) values ('three',10);

示例一:

-- 将id+classmates的和打印出来,id和classmates有一个为null,结果也为null

select id+classmates from csj_class;

示例二:

-- 打印id为null的行,没有打印成功

select * from csj_class where id=null;

示例三:

select ifnull(id,0)+IFNULL(classmates,0) as sum from csj_class;

示例四:

select * from csj_class where id is null;

-- 使用<=>和is null 结果相同

select * from csj_class where id <=> null;

//具体结果你知道了的,本处略。

示例五:

select * from csj_class where id is not null;

//具体结果你也是知道了的,本处略。

END!