MySQLCASE语句实现多重条件判断
  除了 IF 函数,MySQL 还提供了⼀个替代的条件语句 CASE。 MySQL CASE 语句使代码更加可读和⾼效。
  CASE 语句有两种形式:简单 CASE 语句和可搜索的 CASE 语句。
⼀、简单 CASE 语句
  简单 CASE 语句是指使⽤简单 CASE 语句来检查表达式的值与⼀组唯⼀值的匹配,其语法如下所⽰。
CASE <;表达式>
  WHEN <;值1> THEN <;操作>
  WHEN <;值2> THEN <;操作>
  …
  ELSE <;操作>
END
简单的mysql语句
  其中,<;表达式> 可以是任何有效的表达式。我们将 <;表达式> 的值与每个 WHEN ⼦句中的值进⾏⽐较,例如 <;值1>,<;值2> 等,如果<;表达式> 和 <;值n> 的值相等,则执⾏相应的 WHEN 分⽀中的命令 <;操作>。如果 WHEN ⼦句中的 <;值n> 没有与 <;表达式> 的值匹配,则ELSE ⼦句中的命令将被执⾏。
  例如,数据库中有张表 tbl_test_campus,其建表语句如下所⽰。
CREATE TABLE`tbl_test_campus`(
`campus_id`char(16)NOT NULL DEFAULT''COMMENT'校园ID',
`campus_tp`char(1)NOT NULL DEFAULT''COMMENT'校园类别(0:⼤学;1:中⼩幼)',
PRIMARY KEY(`campus_id`)
)ENGINE=InnoDB DEFAULT CHARSET=utf8
  ⽤简单 CASE 语句将 campus_tp 转化为具体含义,SQL 语句则为:
mysql>SELECT campus_tp,CASE campus_tp WHEN"0"THEN"⼤学"WHEN"1"THEN"中⼩幼"ELSE""END AS"校园类别"FROM tbl_test_campus;
+-----------+--------------+
| campus_tp |校园类别|
+-----------+--------------+
|0|⼤学|
|0|⼤学|
|1|中⼩幼|
|||
+-----------+--------------+
4rows in set(0.00 sec)
⼆、可搜索的 CASE 语句
  简单 CASE 语句仅允许将表达式的值与⼀组不同的值进⾏匹配。 为了执⾏更复杂的匹配,如范围,
则可以使⽤可搜索 CASE 语句。可搜索 CASE 语句等同于 IF 语句,但是它的构造更加可读,其语法如下所⽰。
CASE
  WHEN <;条件1> THEN <;命令>
  WHEN <;条件2> THEN <;命令>
  …
  ELSE <;命令>
END
  MySQL 分别计算 WHEN ⼦句中的每个条件,直到到⼀个值为 TRUE 的条件,然后执⾏ THEN ⼦句中的 <;命令>。如果没有⼀个条件为 TRUE,则执⾏ ELSE ⼦句中的 <;命令>。
  ⽤可搜索的 CASE 语句将上表中的 campus_tp 转化为具体含义,SQL 语句如下所⽰。
mysql>SELECT campus_tp,CASE WHEN campus_tp ="0"THEN"⼤学"WHEN campus_tp ="1"THEN
"中⼩幼"ELSE""END AS"校园类别"FROM tbl_te st_campus;
+-----------+--------------+
| campus_tp |校园类别|
+-----------+--------------+
|0|⼤学|
|0|⼤学|
|1|中⼩幼|
|||
+-----------+--------------+
4rows in set(0.00 sec)
  此例跟上例的返回结果⼀样,只是使⽤了 CASE 函数的不同写法,WHEN 后⾯为表达式,当表达式的结果为 TRUE 时,取 THEN 后⾯的值,如果都不是,则返回 ELSE 后⾯的值。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。