php中when,MYSQL中case when语法的作用_浙江PHP博客

77b0d6f72250115d0b60bd2dd3b70f42.gif

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,每天一点技术。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值