在 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)
使用 insert 命令在表中插入一些記錄。查詢如下所示:
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)
廣告
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP