10bet网址
MySQL 5.6リファレンスマニュアル
下载本手册

12.4制御フロ関数

表12.6フロ制御演算子

名前 説明
情况下 案例演算子
如果() If/else構文
IFNULL () 如果/else为空構文
NULLIF () expr1 = expr2の場合にNULLを返します

  • 情况下价值当(compare_value)然后结果[当[compare_value)然后结果...][其他结果)结束

    当[条件)然后结果[当[条件)然后结果...][其他结果)结束

    1番目のバ,ジョンでは,价值compare_valueの場合に结果が返されます。2番目のバ,ジョンでは,trueである最初の条件の結果が返されます。一致する結果値がなかった場合は,其他的のあとの結果が返され,其他的部分がない場合は,が返されます。

    mysql> SELECT CASE 1 WHEN 1 THEN 'one' -> WHEN 2 THEN ' 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;- >零

    情况下式の戻り型は,すべての戻り値の互換性のある集約型ですが,使用されるコンテキストにも依存します。文字列のコンテキストで使用される場合は,結果は文字列として返されます。数値のコンテキストで使用される場合は,結果が10進数値,実数値,または整数値として返されます。

    注記

    ここで示す情况下の構文は,ストアドプログラム内部で使用するために,セクション13.6.5.1“案件構文”で説明したSQL情况下ステ,トメントの構文とはわずかに異なります。情况下ステ,トメントは其他零句を持ことができず,结束でなく,结束案例で終了します。

  • 如果(expr1expr2expr3

    expr1真正的expr1< > 0およびexpr1< >零)の場合,如果()expr2を返します。それ以外の場合はexpr3を返します。如果()は,使用されているコンテキストに応じて,数値または文字列値を返します。

    mysql> SELECT IF(1>2,2,3);SELECT IF(1<2,'yes','no');——>“是的”mysql >选择如果(比较字符串(“测试”、“test1”),“不”,“是的”);- - - - - - >“不”

    expr2expr3の一方のみが明示的にである場合は,如果()関数の結果型は非式の型になります。

    如果()のデフォルトの戻り値(一時テーブルに格納されるときに重要となる場合があります)は,次のように計算されます。

    戻り値
    expr2またはexpr3は文字列を返す 文字列
    expr2またはexpr3は浮動小数点値を返す 浮動小数点
    expr2またはexpr3は整数を返す 整数

    expr2expr3の両方が文字列で,どちらかの文字列で大文字と小文字が区別される場合は,結果でも大文字と小文字が区別されます。

    注記

    如果ステ,トメントもありますが,ここで説明されている如果()関数とは異なります。セクション13.6.5.2“如果構文”を参照してください。

  • IFNULL (expr1expr2

    expr1でない場合,IFNULL ()expr1を返し,それ以外の場合はexpr2を返します。IFNULL ()は,使用されているコンテキストに応じて,数値または文字列値を返します。

    SELECT IFNULL(1,0);-> 1 mysql> SELECT IFNULL(NULL,10);- mysql> SELECT IFNULL(1/0,10);- mysql> SELECT IFNULL(1/0,'yes');——>“是的”

    IFNULL (expr1expr2のデフォルトの結果値は,字符串真正的,または整数の順に,2の式のよりも一般的です。式や MySQL が一時テーブルのIFNULL ()で返された値を内部に格納する必要のある場所に基づいて,テ,ブルの大文字と小文字を考慮してください。

    CREATE TABLE tmp SELECT IFNULL(1,'test') AS test;mysql>描述+-------+--------------+------+-----+---------+-------+ | 字段默认零关键| | | | |类型多  | +-------+--------------+------+-----+---------+-------+ | 测试| varbinary(4) |不  | | | | +-------+--------------+------+-----+---------+-------+

    この例では,测验カラムの型はVARBINARY (4)です。

  • NULLIF (expr1expr2

    expr1expr2が真实の場合はを返し,それ以外の場合はexpr1を返します。これは,情况下expr1expr2然后是null elseexpr1结束と同じです。

    SELECT NULLIF(1,1);-> NULL mysql> SELECT NULLIF(1,2);- > 1
    注記

    引数が等しくない場合は,MySQLでexpr1が2回評価されます。