MySQL 流程函数详解

1. 引言

MySQL 中的流程函数用于在 SQL 查询中实现条件判断和逻辑控制,可以在不借助存储过程的情况下,直接在 SELECT 语句中完成分支逻辑处理。本文介绍 MySQL 中常用的流程函数及其使用场景。

2. IF 函数

IF 函数是最基础的流程函数,用于简单的条件判断,语法如下:

sql 复制代码
IF(expr1, expr2, expr3)

当 expr1 为 TRUE 时返回 expr2,否则返回 expr3。例如:

sql 复制代码
SELECT IF(1 > 0, '正确', '错误');  -- 返回 '正确'

3. IFNULL 函数

IFNULL 函数用于处理 NULL 值,语法如下:

sql 复制代码
IFNULL(expr1, expr2)

当 expr1 不为 NULL 时返回 expr1,否则返回 expr2。例如:

sql 复制代码
SELECT IFNULL(NULL, '默认值');  -- 返回 '默认值'

4. CASE 表达式

CASE 表达式支持更复杂的多分支判断,有两种写法。第一种是简单 CASE 表达式:

sql 复制代码
CASE value
    WHEN compare_value1 THEN result1
    WHEN compare_value2 THEN result2
    ELSE result_default
END

第二种是搜索 CASE 表达式:

sql 复制代码
CASE
    WHEN condition1 THEN result1
    WHEN condition2 THEN result2
    ELSE result_default
END

例如,根据成绩划分等级:

sql 复制代码
SELECT score,
    CASE
        WHEN score >= 90 THEN '优秀'
        WHEN score >= 60 THEN '及格'
        ELSE '不及格'
    END AS grade
FROM student;

5. 总结

IF、IFNULL 和 CASE 是 MySQL 中最常用的流程函数,合理使用可以简化 SQL 逻辑,提高查询的可读性和灵活性。

相关推荐
znnnk3 小时前
数据库被AI“重写”:2026,从CPU中心走向GPU中心
数据库·人工智能·oracle
微微%3 小时前
mysql的安装和使用
数据库·mysql·mysql8安装
软件派4 小时前
MiniMax M3.1 Flash 高频业务落地实战指南
大数据·数据库·人工智能
云边云科技_云网融合5 小时前
连锁门店组网怎么做?SD-WAN 多分支组网的架构选型、部署与成本结构
服务器·数据库·php
泡海椒5 小时前
# 深度解析JQuick-SQL Join重排序与哈希连接执行机制
数据库·sql·哈希算法
acrel76 小时前
医院用电隐患治理与节能降耗及智慧能源平台应用
网络·数据库
snow@li6 小时前
PowerDesigner 全景教程:从业务建模、表结构设计、关系管理到正向/逆向、文档输出
数据库
ss2736 小时前
PostgreSQL表级锁、行级锁、轻量级锁
数据库·postgresql·区块链
RacentCLM7 小时前
证书即服务CaaS:从申请、续期到部署的自动化链路拆解
运维·数据库·自动化·ssl
SelectDB7 小时前
安全评审卡了三周,我把部署形态的四种选项重新排了一遍
大数据·数据库·云原生