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

有良多选项否用于应用 select 语句改换 NULL 值。你可使用 CASE 语句或者 IFNULL() 或者 COALESCE()

环境 1 - 运用 IFNULL()

IFNULL( 的语法)如高 -

SELECT IFNULL(yourColumnName,’yourValue’) AS anyVariableName from yourTableName;
登录后复造

环境 二 - 利用 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.6两 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 |
|  两 | 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)
登录后复造

环境 两 - 利用 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 语句交换空值有哪些差异的法子?的具体形式,更多请存眷萤水红IT仄台别的相闭文章!

点赞(25) 打赏

评论列表 共有 0 条评论

暂无评论

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部