首页  >  文章  >  数据库  >  MySQL 的 CASE 表达式如何像 Switch 语句一样发挥作用?

MySQL 的 CASE 表达式如何像 Switch 语句一样发挥作用?

Patricia Arquette
Patricia Arquette原创
2024-11-05 17:33:02473浏览

How Does MySQL's CASE Expression Function Like a Switch Statement?

理解MySQL的CASE表达式

与直观的“if”语句不同,MySQL的CASE语法模仿“switch”语句。它提供两种不同的格式来评估条件并返回相应的结果。

比较语句的语法:

CASE<pre class="brush:php;toolbar:false">WHEN user_role = 'Manager' then 4
WHEN user_name = 'Tom' then 27
WHEN columnA <> columnB then 99
ELSE -1 --unknown

END

此格式允许您使用任何有效的 SQL 表达式指定多个比较条件。每个“WHEN”子句都会评估其条件,如果为真,则执行相应的语句。

具有单个值的语法:

CASE user_role<pre class="brush:php;toolbar:false">WHEN 'Manager' then 4
WHEN 'Part Time' then 7
ELSE -1 --unknown

END

这种简洁的形式假设您只检查一个值,并允许您在 CASE 表达式之后直接指定多个“WHEN”条件。 “ELSE”子句是可选的,如果没有满足“WHEN”条件,则提供后备值。

应用到您的示例:

生成新的字段“role_order”基于“user_role”字段,您可以使用第二种语法,如下所示:

CASE user_role<pre class="brush:php;toolbar:false">WHEN 'Manager' then 5
WHEN 'Part Time' then 8
ELSE -1 --unknown

END

;

当“user_role”为“Manager”时,此表达式将值 5 分配给“role_order”;当“user_role”为“Part Time”时,该表达式将值 8 分配给“role_order”;当这两个条件都不满足时,该表达式将值分配给 -1。

以上是MySQL 的 CASE 表达式如何像 Switch 语句一样发挥作用?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn