10bet网址
MySQL 5.7参考手册
相关文件10bet官方网站 下载本手册 从本手册中摘录

12.5流量控制功能

表12.7流量控制运营商

名称 描述
案件 案例操作员
如果() 如果/ else构造
ifnull() null如果/ else构造
nullif() 如果expr1 = expr2,则返回null

  • 案件价值什么时候compare_value.然后结果[什么时候compare_value.然后结果...] [别的结果] 结尾

    案例状况然后结果[什么时候状况然后结果...] [别的结果] 结尾

    首先案件语法返回结果为了第一价值=compare_value.比较是真的。第二个语法返回一个真实条件的结果。如果没有比较或条件是真的,结果之后别的被返回,或空值如果没有别的部分。

    笔记

    的语法案件操作员这里描述的描述略有不同于SQL案件陈述描述第13.6.5.1节“案例陈述”,用于在存储的程序内使用。这案件声明不能拥有否则为null.条款,它终止了结束案例代替结尾

    返回类型的案件表达式结果是所有结果值的聚合类型。

    mysql>选择案例1当1然后'一个' - >当2然后'两个'别的'更终端时;- >'一个'mysql>选择案例1> 0然后'真'否则'false'end;- >'真实'mysql>选择案例二进制'b' - >当'a'然后1 on'b'然后2结束时;- > null.
  • 如果(Expr1.Expr2.Expr3.

    如果Expr1.真的Expr1.<> 0.Expr1.<> null.),如果()回报Expr2.。否则,它返回Expr3.

    笔记

    还有一个如果陈述,与之不同如果()功能这里描述。看第13.6.5.2节,“如果声明”

    如果只有一个Expr2.或者Expr3.是明确的空值,结果类型如果()功能是非的类型空值表达。

    默认返回类型如果()(当它存储到临时表中可能很重要)计算如下:

    • 如果Expr2.或者Expr3.生成字符串,结果是字符串。

      如果Expr2.Expr3.都是字符串,如果一个字符串区分大小写,结果是区分大小写的。

    • 如果Expr2.或者Expr3.产生浮点值,结果是浮点值。

    • 如果Expr2.或者Expr3.生成整数,结果是整数。

    mysql>选择if(1> 2,2,3);- > 3 mysql>选择if(1 <2,'是','否');- >'是'mysql>选择if(strcmp('test','test1'),'no','是');- >'否'
  • ifnull(Expr1.Expr2.

    如果Expr1.不是空值ifnull()回报Expr1.;否则返回Expr2.

    mysql>选择ifnull(1,0);- > 1 mysql>选择ifnull(null,10);- > 10 mysql>选择ifnull(1/0,10);- > 10 mysql>选择ifnull(1/0,'是');- >'是'

    默认返回类型ifnull(Expr1.Expr2.毕竟是一般的两个表达式,按顺序细绳真实的, 或者整数。考虑基于表达式的表的情况,或者MySQL必须在内部存储返回的值ifnull()在临时表中:

    MySQL>创建表TMP选择ifnull(1,'测试')作为测试;mysql>描述tmp;+ ------- + ------------ + ------ + ----- + --------- + ------- + |领域|型号null |钥匙|默认额外|+ ------- + ------------ + ------ + ----- + --------- + ------- + | test | varbinary(4) | NO | | | | +-------+--------------+------+-----+---------+-------+

    在这个例子中,测试列是varbinary(4)(字符串类型)。

  • nullif(Expr1.Expr2.

    回报空值如果Expr1.=Expr2.是真的,否则退货Expr1.。这与案例Expr1.=Expr2.然后别的别的Expr1.结尾

    返回值与第一个参数具有相同的类型。

    mysql>选择nullif(1,1);- > null mysql>选择nullif(1,2);- > 1
    笔记

    mysql评估Expr1.如果参数不等于,则两次。