Mysql 之 条件判断

本文介绍了MySQL中IF和CASE语句的使用方法,并提供了详细的语法结构和实用案例,帮助读者掌握这两种重要的流程控制语句。
[b]官方英文文档:[/b]
[url]http://dev.mysql.com/doc/refman/5.0/en/flow-control-statements.html[/url]

[color=red]************************** [b]IF[/b] **************************[/color]
[b]语法:[/b]

IF search_condition THEN statement_list
[ELSEIF search_condition THEN statement_list] ...
[ELSE statement_list]
END IF


[b]实例:[/b]

DELIMITER$$

DROP PROCEDURE IF EXISTS pro_if$$
CREATE PROCEDURE pro_if(
i INT
)
BEGIN
IF i < 60 THEN
SELECT '需继续努力,争取过线!' AS result;
ELSEIF i < 85 THEN
SELECT '再努力点,争取达优!' AS result;
ELSE
SELECT '不错哦,恭喜,恭喜!' AS result;
END IF;
END$$



[color=red]************************** [b]CASE[/b] **************************[/color]
[b]语法:[/b]
CASE case_value
WHEN when_value THEN statement_list
[WHEN when_value THEN statement_list] ...
[ELSE statement_list]
END CASE


[color=red][b]Or:[/b][/color]

CASE
WHEN search_condition THEN statement_list
[WHEN search_condition THEN statement_list] ...
[ELSE statement_list]
END CASE


[b]实例:[/b]

DELIMITER$$

DROP PROCEDURE IF EXISTS pro_case$$
CREATE PROCEDURE pro_case(
i INT
)
BEGIN
CASE i
WHEN 1 THEN SELECT 'you male!' AS result;
WHEN 0 THEN SELECT 'you female!' AS result;
ELSE
SELECT 'third sex!' AS result;
END CASE;
END$$
### MySQL 条件判断的使用方法 在MySQL中,条件判断主要通过内置的条件判断函数来实现,这些函数可以用于查询、更新或其他操作中的逻辑控制。以下是几种常用的条件判断函数及其用法: #### 1. IF 函数 `IF(expr, v1, v2)` 是 MySQL 中最常用的条件判断函数之一。如果表达式 `expr` 的值为 `TRUE`(即非零且非空),则返回 `v1`;否则返回 `v2`[^4]。 **示例代码:** ```sql SELECT IF(10 > 5, '大于', '小于或等于') AS result; ``` 上述语句会返回 `'大于'`,因为条件 `10 > 5` 为真。 #### 2. CASE 表达式 `CASE` 是一种更灵活的条件判断方式,适用于复杂的多分支逻辑。它有两种形式:简单 CASE 和搜索 CASE。 - **简单 CASE**: 根据一个表达式的值与多个可能值进行匹配。 **示例代码:** ```sql SELECT CASE grade WHEN 'A' THEN '优秀' WHEN 'B' THEN '良好' ELSE '其他' END AS evaluation FROM students; ``` - **搜索 CASE**: 根据多个条件逐一判断,直到找到匹配的条件为止。 **示例代码:** ```sql SELECT CASE WHEN score >= 90 THEN '优秀' WHEN score >= 70 THEN '良好' ELSE '及格' END AS evaluation FROM students; ``` #### 3. IFNULL 函数 `IFNULL(expr1, expr2)` 用于判断第一个参数是否为 NULL。如果 `expr1` 为 NULL,则返回 `expr2`;否则返回 `expr1`[^4]。 **示例代码:** ```sql SELECT IFNULL(NULL, '默认值') AS result; ``` 上述语句会返回 `'默认值'`,因为第一个参数为 NULL。 #### 4. NULLIF 函数 `NULLIF(expr1, expr2)` 用于比较两个表达式。如果它们相等,则返回 NULL;否则返回 `expr1`[^4]。 **示例代码:** ```sql SELECT NULLIF(10, 10) AS result; ``` 上述语句会返回 `NULL`,因为两个参数相等。 #### 5. COALESCE 函数 `COALESCE(expr1, expr2, ...)` 返回参数列表中第一个非 NULL 的值。如果没有非 NULL 值,则返回 NULL[^4]。 **示例代码:** ```sql SELECT COALESCE(NULL, '值1', '值2') AS result; ``` 上述语句会返回 `'值1'`,因为它是第一个非 NULL 的值。 --- ### 结合实际场景的应用 在实际开发中,条件判断函数经常用于数据处理和业务逻辑实现。例如,在插入数据时根据条件动态生成字段值: **示例代码:** ```sql INSERT INTO table_name (column1, column2, column3) VALUES ( '固定值', IF(score >= 60, '及格', '不及格'), CURRENT_TIMESTAMP ); ``` ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值