在 MySQL 中使用 SELECT 语句替换空值有哪些不同的方法?

ID:1551 / 打印

来到24分享网的大家,相信都是编程学习爱好者,希望在这里学习数据库相关编程知识。下面本篇文章就来带大家聊聊《在 MySQL 中使用 SELECT 语句替换空值有哪些不同的方法?》,介绍一下,希望对大家的知识积累有所帮助,助力实战开发!

有很多选项可用于使用 select 语句替换 NULL 值。您可以使用 CASE 语句或 IFNULL() 或 COALESCE()

情况 1 - 使用 IFNULL()

IFNULL( 的语法)如下 -

SELECT IFNULL(yourColumnName,’yourValue’) AS anyVariableName from yourTableName;

情况 2 - 使用 COALESCE()

COALESCE() 的语法如下 -

SELECT COALESCE(yourColumnName,’yourValue’) AS anyVariableName from yourTableName;

情况 3 - 使用 CASE 语句

CASE 语句的语法。

SELECT CASE WHEN yourColumnName IS NULL THEN ‘yourValue’ ELSE yourColumnName END AS anyVariableName FROM yourTableName

为了理解我们上面讨论的内容,让我们创建一个表格。创建表的查询如下 -

mysql> create table ReplaceNULLDemo    -> (    -> Id int NOT NULL AUTO_INCREMENT,    -> Name varchar(10),    -> Marks int,    -> PRIMARY KEY(Id)    -> ); Query OK, 0 rows affected (0.62 sec)

使用插入命令在表中插入一些记录。查询如下 -

mysql> insert into ReplaceNULLDemo(Name,Marks) values('Larry',90); Query OK, 1 row affected (0.16 sec)  mysql> insert into ReplaceNULLDemo(Name,Marks) values('Carol',NULL); Query OK, 1 row affected (0.17 sec)  mysql> insert into ReplaceNULLDemo(Name,Marks) values('David',NULL); Query OK, 1 row affected (0.14 sec)  mysql> insert into ReplaceNULLDemo(Name,Marks) values('Bob',67); Query OK, 1 row affected (0.17 sec)  mysql> insert into ReplaceNULLDemo(Name,Marks) values('Sam',78); Query OK, 1 row affected (0.19 sec)  mysql> insert into ReplaceNULLDemo(Name,Marks) values('Mike',NULL); Query OK, 1 row affected (0.19 sec)  mysql> insert into ReplaceNULLDemo(Name,Marks) values('John',98); Query OK, 1 row affected (0.16 sec)

使用 select 语句显示表中的所有记录。查询如下 -

mysql> select *from ReplaceNULLDemo;

以下是输出 -

+----+-------+-------+ | Id | Name  | Marks | +----+-------+-------+ |  1 | Larry |    90 | |  2 | Carol |  NULL | |  3 | David |  NULL | |  4 | Bob   |    67 | |  5 | Sam   |    78 | |  6 | Mike  |  NULL | |  7 | John  |    98 | +----+-------+-------+ 7 rows in set (0.00 sec)

现在让我们将 NULL 值转换为 0。

情况 1 - 使用 IFNULL()

查询如下-

mysql> select ifnull(Marks,0) as ReplacementOfNULLWith0 from ReplaceNULLDemo;

以下是显示 NULL 替换为 0 的输出 -

+------------------------+ | ReplacementOfNULLWith0 | +------------------------+ |                     90 | |                      0 | |                      0 | |                     67 | |                     78 | |                      0 | |                     98 | +------------------------+ 7 rows in set (0.00 sec)

情况 2 - 使用 COALESCE()

查询如下 -

mysql> select coalesce(Marks,0) as ReplacementOfNULLWith0 from ReplaceNULLDemo;

以下是显示 NULL 替换为 0 的输出 -

+------------------------+ | ReplacementOfNULLWith0 | +------------------------+ | 90 | | 0 | | 0 | | 67 | | 78 | | 0 | | 98 | +------------------------+ 7 rows in set (0.00 sec)

情况 3 - 使用 CASE 语句。

查询如下 -

mysql> select case    -> when Marks is null then 0    -> else Marks end as ReplacementOfNULLWith0    -> from ReplaceNULLDemo;

以下是显示 NULL 替换为 0 的输出 -

+------------------------+ | ReplacementOfNULLWith0 | +------------------------+ | 90                     | | 0                      | | 0                      | | 67                     | | 78                     | | 0                      | | 98                     | +------------------------+ 7 rows in set (0.00 sec)

本篇关于《在 MySQL 中使用 SELECT 语句替换空值有哪些不同的方法?》的介绍就到此结束啦,但是学无止境,想要了解学习更多关于数据库的相关知识,请关注the24.cn!

上一篇: 我们如何计算 MySQL 表中列包含重复/三重数据的记录?
下一篇: 如何在 Linux 上将 MySQL 迁移到 MariaDB?

作者:admin @ 24资源网   2024-09-04

本站所有软件、源码、文章均有网友提供,如有侵权联系308410122@qq.com

与本文相关文章

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。