資料庫

MySQL/MariaDB 資料庫 IF 條件判斷用法教學與範例

介紹在查詢 MySQL/MariaDB 資料庫時如何運用 IF 條件判斷,產生所需的資料。

在查詢 MySQL/MariaDB 資料庫時,我們可以運用 IF 條件判斷式,根據自訂的條件將原始的資料轉換成我們想要的型式,以下是 IF 的使用方法與實際應用範例。

IF 條件判斷

IF 的語法非常簡單:

IF(判斷條件, 條件成立傳回值, 條件不成立傳回值)

判斷條件成立時就會傳回條件成立傳回值,否則就傳回條件不成立傳回值

以下是一個簡單的例子:

SELECT IF(2>1, "Yes", "No");
+----------------------+
| IF(2>1, "Yes", "No") |
+----------------------+
| Yes                  |
+----------------------+

實際應用範例

假設我們有一些人員的資料如下:

SELECT * FROM user_table;
+----+-------+------+
| id | name  | age  |
+----+-------+------+
|  5 | John  |   23 |
|  6 | Mary  |   45 |
|  7 | Joe   |   15 |
|  8 | Smith |   21 |
+----+-------+------+

如果我們想要將人員根據 age 區分為兩組,40 以下稱為 Young40 以上稱為 Old,就可以這樣寫:

SELECT name, age, IF(age<40, "Young", "Old") FROM user_table;
+-------+------+----------------------------+
| name  | age  | IF(age<40, "Young", "Old") |
+-------+------+----------------------------+
| John  |   23 | Young                      |
| Mary  |   45 | Old                        |
| Joe   |   15 | Young                      |
| Smith |   21 | Young                      |
+-------+------+----------------------------+

如果感覺 IF 那一欄的名稱太冗長不好看,可以用 AS 改一下名稱:

SELECT name, age, IF(age<40, "Young", "Old") AS grp FROM user_table;
+-------+------+-------+
| name  | age  | grp   |
+-------+------+-------+
| John  |   23 | Young |
| Mary  |   45 | Old   |
| Joe   |   15 | Young |
| Smith |   21 | Young |
+-------+------+-------+

這樣就可以很輕鬆的根據年齡產生我們想要的分組資料了。

IF 的傳回值也可以是資料表中的欄位,假設我們想要將未滿 18 的人員名字隱藏起來,就可以這樣寫:

SELECT name, age, IF(age>=18, name, "***") AS mask_name FROM user_table;
+-------+------+-----------+
| name  | age  | mask_name |
+-------+------+-----------+
| John  |   23 | John      |
| Mary  |   45 | Mary      |
| Joe   |   15 | ***       |
| Smith |   21 | Smith     |
+-------+------+-----------+
Share
Published by
Office Guide

Recent Posts

Python 使用 PyAutoGUI 自動操作滑鼠與鍵盤

本篇介紹如何在 Python ...

1 年 ago

Ubuntu Linux 以 WireGuard 架設 VPN 伺服器教學與範例

本篇介紹如何在 Ubuntu ...

1 年 ago

Linux 網路設定 ip 指令用法教學與範例

本篇介紹如何在 Linux 系...

1 年 ago

Linux 以 Cryptsetup、LUKS 加密 USB 隨身碟教學與範例

介紹如何在 Linux 系統中...

1 年 ago