mysql 控制流函数
Posted Damocless
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql 控制流函数相关的知识,希望对你有一定的参考价值。
IFNULL(expr1,expr2)
如果 expr1 为非 NULL 的,IFNULL() 返回 expr1,否则返回 expr2。IFNULL() 返回一个数字或字符串值
mysql> SELECT IFNULL(1,0);
-> 1
mysql> SELECT IFNULL(NULL,10);
-> 10
如果 expr1 = expr2 为真,返回 NULL,否则返回 expr1。 它等同于 CASE WHEN x = y THEN NULL ELSE x END:
mysql> SELECT NULLIF(1,1);
-> NULL
mysql> SELECT NULLIF(1,2);
-> 1
--------------------------------------------------------------------------------
NULLIF(expr1,expr2)
如果 expr1 = expr2 为真,返回 NULL,否则返回 expr1。 它等同于 CASE WHEN x = y THEN NULL ELSE x END:
mysql> SELECT NULLIF(1,1);
-> NULL
mysql> SELECT NULLIF(1,2);
-> 1
--------------------------------------------------------------------------------
IF(expr1,expr2,expr3)
如果expr1为真,那么将返回expr2的值,否则返回expr3的值
mysql> SELECT IF(1>2,2,3);
-> 3
mysql> SELECT IF(1<2,‘yes‘,‘no‘);
-> ‘yes‘
mysql> SELECT IF(STRCMP(‘test‘,‘test1‘),‘no‘,‘yes‘);
-> ‘no‘
如果expr2和expr3明确的指为null,那么将返回非NULL的类型..
--------------------------------------------------------------------------------
CASE value WHEN [compare-value] THEN result [WHEN [compare-value] THEN result ...] [ELSE result] END
CASE WHEN [condition] THEN result [WHEN [condition] THEN result ...] [ELSE result] END
mysql> SELECT CASE 1 WHEN 1 THEN "one"
WHEN 2 THEN "two" ELSE "more" END;
-> "one"
mysql> SELECT CASE WHEN 1>0 THEN "true" ELSE "false" END;
-> "true"
mysql> SELECT CASE BINARY "B" WHEN "a" THEN 1 WHEN "b" THEN 2 END;
-> NULL
以上是关于mysql 控制流函数的主要内容,如果未能解决你的问题,请参考以下文章