mysql中CASE WHEN语句如何书写_mysql CASE WHEN使用方法

P粉602998670
发布: 2025-12-03 10:06:45
原创
940人浏览过
CASE WHEN语句在MySQL中用于条件判断,支持SELECT、UPDATE、WHERE和ORDER BY等场景,有两种语法形式:简单CASE表达式和搜索型CASE表达式;在SELECT中可实现分数转等级,如根据score字段返回“优秀”“良好”等;在ORDER BY中可通过数值映射实现自定义排序;在UPDATE中可批量按条件更新字段值;需注意条件顺序影响结果,一旦匹配则停止后续判断,因此高优先级条件应前置,避免逻辑覆盖。

mysql中case when语句如何书写_mysql case when使用方法

在MySQL中,CASE WHEN语句用于实现条件判断,类似于编程语言中的if-else逻辑。它可以在SELECT、UPDATE、WHERE等语句中使用,帮助根据不同的条件返回不同的值。

基本语法结构

MySQL中CASE WHEN有两种写法:

1. 简单CASE表达式(类比switch-case)

CASE value
    WHEN value1 THEN result1
    WHEN value2 THEN result2
    ELSE result
END
登录后复制

2. 搜索型CASE表达式(支持复杂条件)

CASE
    WHEN condition1 THEN result1
    WHEN condition2 THEN result2
    ELSE result
END
登录后复制

其中,ELSE是可选的,如果没有匹配项且未指定ELSE,则返回NULL。

在SELECT中使用示例

假设有一张学生表 students,包含字段 score,我们想根据分数划分等级:

SELECT 
    name,
    score,
    CASE 
        WHEN score >= 90 THEN '优秀'
        WHEN score >= 80 THEN '良好'
        WHEN score >= 60 THEN '及格'
        ELSE '不及格'
    END AS grade
FROM students;
登录后复制

这条语句会为每个学生计算出对应的等级。

在ORDER BY中配合使用

有时需要按自定义顺序排序。例如,想按“优秀 > 良好 > 及格 > 不及格”的顺序显示数据:

SELECT 
    name, 
    score,
    CASE 
        WHEN score >= 90 THEN '优秀'
        WHEN score >= 80 THEN '良好'
        WHEN score >= 60 THEN '及格'
        ELSE '不及格'
    END AS grade
FROM students
ORDER BY 
    CASE 
        WHEN score >= 90 THEN 1
        WHEN score >= 80 THEN 2
        WHEN score >= 60 THEN 3
        ELSE 4
    END;
登录后复制

在UPDATE语句中使用

可以根据条件批量更新数据。例如,将成绩等级写入新字段:

UPDATE students SET level = 
CASE 
    WHEN score >= 90 THEN 'A'
    WHEN score >= 80 THEN 'B'
    WHEN score >= 70 THEN 'C'
    ELSE 'D'
END;
登录后复制

注意事项

CASE WHEN 是按顺序执行的,一旦满足某个条件就停止后续判断。因此条件的排列顺序很重要。

比如下面这个例子会有问题:

CASE 
    WHEN score > 0 THEN '正数'
    WHEN score > 50 THEN '高分'  -- 永远不会被执行
    ELSE '零或负数'
END
登录后复制

因为大于50的数也大于0,所以第二个条件无法命中。应调整顺序:

CASE 
    WHEN score > 50 THEN '高分'
    WHEN score > 0 THEN '正数'
    ELSE '零或负数'
END
登录后复制

基本上就这些。CASE WHEN语句灵活实用,掌握后能显著提升SQL的表达能力。不复杂但容易忽略细节。

以上就是mysql中CASE WHEN语句如何书写_mysql CASE WHEN使用方法的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号