首頁 > 資料庫 > mysql教程 > 在 MySQL 中使用 SELECT 語句取代空值有哪些不同的方法?

在 MySQL 中使用 SELECT 語句取代空值有哪些不同的方法?

王林
發布: 2023-09-07 11:13:10
轉載
999 人瀏覽過

在 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 語句取代空值有哪些不同的方法?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:tutorialspoint.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板