情况下
价值
当(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情况下
ステ,トメントの構文とはわずかに異なります。情况下
ステ,トメントは其他零
句を持ことができず,结束
でなく,结束案例
で終了します。expr1
が真正的
(
およびexpr1
< > 0
)の場合,expr1
< >零如果()
はexpr2
を返します。それ以外の場合はexpr3
を返します。如果()
は,使用されているコンテキストに応じて,数値または文字列値を返します。mysql> SELECT IF(1>2,2,3);SELECT IF(1<2,'yes','no');——>“是的”mysql >选择如果(比较字符串(“测试”、“test1”),“不”,“是的”);- - - - - - >“不”
expr2
とexpr3
の一方のみが明示的に零
である場合は,如果()
関数の結果型は非零
式の型になります。如果()
のデフォルトの戻り値(一時テーブルに格納されるときに重要となる場合があります)は,次のように計算されます。式 戻り値 expr2
またはexpr3
は文字列を返す文字列 expr2
またはexpr3
は浮動小数点値を返す浮動小数点 expr2
またはexpr3
は整数を返す整数 expr2
とexpr3
の両方が文字列で,どちらかの文字列で大文字と小文字が区別される場合は,結果でも大文字と小文字が区別されます。注記如果
ステ,トメントもありますが,ここで説明されている如果()
関数とは異なります。セクション13.6.5.2“如果構文”を参照してください。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 (
のデフォルトの結果値は,expr1
,expr2
)字符串
、真正的
,または整数
の順に,2の式のよりも「一般的」です。式や MySQL が一時テーブルのIFNULL ()
で返された値を内部に格納する必要のある場所に基づいて,テ,ブルの大文字と小文字を考慮してください。CREATE TABLE tmp SELECT IFNULL(1,'test') AS test;mysql>描述+-------+--------------+------+-----+---------+-------+ | 字段默认零关键| | | | |类型多 | +-------+--------------+------+-----+---------+-------+ | 测试| varbinary(4) |不 | | | | +-------+--------------+------+-----+---------+-------+
この例では,
测验
カラムの型はVARBINARY (4)
です。
が真实の場合はexpr1
=expr2
零
を返し,それ以外の場合はexpr1
を返します。これは,情况下
と同じです。expr1
=expr2
然后是null elseexpr1
结束SELECT NULLIF(1,1);-> NULL mysql> SELECT NULLIF(1,2);- > 1
注記引数が等しくない場合は,MySQLで
expr1
が2回評価されます。