CASE表达式在MySQL中有两种形式:简单CASE和搜索型CASE,分别用于值匹配和条件判断,可应用于SELECT、UPDATE、ORDER BY等语句中,提升SQL逻辑性与灵活性,需以END结尾,推荐使用ELSE处理默认情况。

CASE 条件表达式在 MySQL 中用于实现类似编程语言中的条件判断功能,可以根据不同的条件返回不同的值。它常用于 SELECT、UPDATE、WHERE 等语句中,让查询更灵活。MySQL 支持两种形式的 CASE 表达式:简单 CASE 和搜索型 CASE。
这种形式将一个表达式与多个可能的值进行比较,类似于 switch-case 结构。
语法:
CASE value
WHEN compare_value1 THEN result1
WHEN compare_value2 THEN result2
...
ELSE default_result
END
示例:根据员工职位显示对应的中文称呼。
SELECT name,
CASE job
WHEN 'manager' THEN '经理'
WHEN 'developer' THEN '开发'
WHEN 'designer' THEN '设计'
ELSE '未知'
END AS job_zh
FROM employees;
这种形式更灵活,允许使用任意条件判断,类似于 if-else if-else 结构。
语法:
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
...
ELSE default_result
END
示例:根据学生成绩划分等级。
SELECT name, score,
CASE
WHEN score >= 90 THEN '优秀'
WHEN score >= 80 THEN '良好'
WHEN score >= 60 THEN '及格'
ELSE '不及格'
END AS grade
FROM students;
CASE 不仅可用于 SELECT,也可用于 UPDATE 或 ORDER BY 中。
示例:用 CASE 更新数据
UPDATE products
SET status =
CASE
WHEN stock > 0 THEN '有货'
ELSE '缺货'
END;
示例:用 CASE 控制排序优先级
SELECT name, role
FROM users
ORDER BY
CASE role
WHEN 'admin' THEN 1
WHEN 'editor' THEN 2
ELSE 3
END;
基本上就这些。掌握这两种 CASE 写法,能让你的 SQL 更具逻辑性和可读性。注意每个 CASE 必须以 END 结尾,ELSE 可选但推荐加上以防遗漏情况。
以上就是case条件表达式在mysql中如何使用的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号