PHP博客分享Mysql条件判断语句case when语法的作用,严格来讲,不应该叫“mysql条件判断语句case when语法”的,它的专业语术是:“mysql流程控制语句case语法”;这一点对于做程序的人来说一定要清楚。
CASE语法:
1
2
3
4
5
6
7
8
9
10
11
CASEcase_value
WHENwhen_valueTHENstatement_list
[WHENwhen_valueTHENstatement_list]...
[ELSEstatement_list]
ENDCASE
或
CASE
WHENsearch_conditionTHENstatement_list
[WHENsearch_conditionTHENstatement_list]...
[ELSEstatement_list]
ENDCASE
CASE存储程序 的语句实现了一个复杂的条件结构。
注意:也有一个表达,这不同于这里描述的 陈述。该 声明不能有一个 条款,而是终止 而不是。 CASE CASE CASEELSE NULLEND CASEEND
CASE语法说明:
对于第一个语法,case_value是一个表达式。将该值与when_value每个WHEN子句中的表达式进行 比较, 直到其中一个相等。当when_value找到平等时,相应的THEN子句 statement_list执行。如果不 when_value相等,则该 ELSE子句 statement_list执行,如果有的话。
这个语法不能用于测试是否相等, NULL因为NULL = NULL 是错误的。
对于第二种语法,将对每个WHEN子句 search_condition表达式进行求值,直到其中一个为真,此时它的对应 THEN子句将 statement_list执行。如果不 search_condition相等,则该 ELSE子句 statement_list执行,如果有的话。
如果否when_value或 search_condition匹配测试的值,并且CASE语句不包含任何ELSE子句,则CASE语句错误结果将找不到Case。
每个statement_list由一个或多个SQL语句组成; 一个空的 statement_list是不允许的。
CASE代码示例:
1、要处理没有任何值与任何WHEN子句匹配的情况 ,请使用ELSE 包含空白 BEGIN ... END块的情况,如下所示。
1
2
3
4
5
6
7
8
9
10
11
12
13
DELIMITER|
CREATEPROCEDUREp()
BEGIN
DECLAREvINTDEFAULT1;
CASEv
WHEN2THENSELECTv;
WHEN3THENSELECT0;
ELSE
BEGIN
END;
ENDCASE;
END;
|
2、sql语句查询时给某个空字段赋值
1
2
3
4
5
6
7
8
9
10
11
SELECT
CASE
WHENfield=''THEN
'1'
WHENfieldISNULLTHEN
'1'
ELSE
field
END
FROM
tablename
一点PHP,每天一点技术。