ホームページ  >  記事  >  データベース  >  MySQL 基本チュートリアル 6 - 関数制御フロー関数

MySQL 基本チュートリアル 6 - 関数制御フロー関数

黄舟
黄舟オリジナル
2017-02-24 11:09:341019ブラウズ

構文:

  • CASE value WHEN [比較値] THEN 結果 [WHEN [比較値] THEN 結果 ...] [ELSE 結果 ] END CA SE いつ[condition] THEN result [WHEN [condition] THEN result ...] [ELSE result] END

最初のソリューションの戻り結果では、value=比較-価値。 2 番目のシナリオの戻り結果は、最初のシナリオの真の結果です。一致する結果値がない場合、戻り値は ELSE 以降の結果になります。ELSE 部分がない場合、戻り値は NULL になります。

mysql>SELECT CASE WHEN 1 THEN 'one'

-> SELECT CASE WHEN 1>THEN 'true' ELSE 'false' END; mysql>

SELECT CASE BINARY 'B'

->THEN 2 END;

->NULL

CASE式のデフォルトの戻り値の型は、互換性のある戻り値のコレクション型ですが、特定の状況によって異なります。それが使用される文脈に基づいて。文字列コンテキストで使用された場合は、結果の文字列を返します。数値コンテキストで使用した場合、結果は 10 進数、実数、または整数値として返されます。

IF(

expr1,expr2

,

expr3

)

  • if

    expr1がTRUE (expr1 <> および expr1 < ;> NULL)、その後 IF () の戻り値は expr2

    ; それ以外の場合、戻り値は
  • expr3
です。 IF() の戻り値は、コンテキストに応じて数値または文字列値のいずれかになります。

mysql>SELECT IF(1>2,2,3);->3mysql>SELECT IF(1

-> ; 'はい'

mysql> SELECT IF('test','test1'),'no','yes');

-> 'no'

if expr2

または

expr3

の 1 つだけが明示的に NULL である場合、IF() 関数の結果の型は、非 NULL 式の結果の型になります。

expr1

は整数値として計算されます。つまり、浮動小数点値または文字列値を検証する場合は、比較演算を使用してチェックする必要があります。

mysql>

SELECT IF(0.1,1,0); mysql> 最初の例では、 (0.1) は、0.1 が整数値に変換され、IF(0) のテストが行​​われるため、0 を返します。これはあなたが望む状況ではないかもしれません。 2 番目の例では、比較により元の浮動小数点値がゼロ以外であるかどうかがチェックされます。比較結果には整数を使用します。

IF() のデフォルトの戻り値の型 (これは一時テーブルに格納される場合に重要です) は次のように計算されます:

expression

return value

expr2

または

expr3

戻り値は文字列です。

String または 浮動小数点 戻り値は整数です。 整数
expr2expr3 戻り値は浮動小数点値です。
expr2またはexpr3

expr2expr3 が両方とも文字列で、いずれかの文字列が大文字と小文字を区別する場合、返される結果は大文字と小文字が区別されます。

  • IFNULL(

    expr1,expr2)

expr1がNULLでない場合、IFNULL()の戻り値はexpr1、それ以外の場合、戻り値はexpr2です。 IFNULL() の戻り値は、使用されるコンテキストに応じて数値または文字列のいずれかになります。

mysql>

SELECT IFNULL(1,0);

->

-> ; /0,10) ;

-&gt; of は、STRING、REAL、または INTEGER の順で、2 つの式のうち、より「一般的」な式です。式ベースのテーブルの場合、または MySQL が IFNULL() の戻り値をメモリ内の一時テーブルに保存する必要があるとします。

CREATE TABLE tmp SELECT IFNULL(1,'test') AS test;この例では、テスト列の型は CHAR(4) です。

NULLIF(

expr1

,

expr2)

expr1 = expr2がtrueの場合、戻り値はNULL、それ以外の場合、戻り値はexpr1

です。これは CASE WHEN

expr1

=

expr2

THEN NULL ELSE
    expr1
  • END と同じです。

    mysql> SELECT NULLIF(1,1);

    -> MySQLで2回取得した値がexpr1です。
上記は MySQL 基本チュートリアル 6 - 関数制御プロセス関数の内容です。その他の関連コンテンツについては、PHP 中国語 Web サイト (www.php.cn) をご覧ください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。