MySQL 5.1 リファレンスマニュアル :: 11 関数と演算子 :: 11.4 数字関数 :: 11.4.1 算術演算子
« 11.4 数字関数

11.4.2 数学関数 »
Section Navigation      [Toggle]
  • 11.4 数字関数
  • 11.4.1 算術演算子
  • 11.4.2 数学関数

11.4.1. 算術演算子

通常の算術演算子を利用することができます。結果の制度は次のルールに従って判断されます :

  • - 、+ 、および * の場合、両方の引数が整数であれば、結果はBIGINT ( 64 ビット ) の精度で計算されますのでご注意ください。

  • 引数のひとつが符号のない整数であり、もう一方の引数も整数である場合は、結果は符号なしの整数になります。

  • + 、- 、/ 、* 、% オペランドのいずれかが実数またはストリング値であれば、結果の精度は最大精度を持つ引数の精度になります。

  • 乗算および除算では、ふたつの高精度値を使用する場合の結果の精度は、最初の引数の精度と、div_precision_increment グローバル変数の値を足したものになります。例えば、式 5.05 / 0.0014 は小数点以下 6 桁の精度 ( 3607.142857 ) を持ちます。

これらのルールは各演算に適用され、入れ子算は各コンポーネントの精度を示唆します。したがって、(14620 / 9432456) / (24250 / 9432456) はまず (0.0014) / (0.0026) に解析され、最終的に結果は小数点以下 8 桁 ( 0.57692308 ) になります。

これらの適用ルールと方法のため、計算のコンポーネントとサブコンポーネントが適切なレベルの精度を用いるよう注意してください。詳細は 項11.8. 「キャスト関数と演算子」 を参照してください。

  • +

    加算 :

    mysql> SELECT 3+5;
            -> 8
    
  • -

    減算 :

    mysql> SELECT 3-5;
            -> -2
    
  • -

    単項マイナス。この演算子は引数の符号を変更します。

    mysql> SELECT - 2;
            -> -2
    

    注記 :この演算子が BIGINT と使用される場合は、戻り値も BIGINT になります。そのため、–263 の値を持つ可能性のある整数に – を使用するのは避けてください。

  • *

    乗算 :

    mysql> SELECT 3*5;
            -> 15
    mysql> SELECT 18014398509481984*18014398509481984.0;
            -> 324518553658426726783156020576256.0
    mysql> SELECT 18014398509481984*18014398509481984;
            -> 0
    

    整数の乗算の結果は BIGINT 計算の 64 ビット範囲を越えるため、最後の式の結果は正しくありません。( 項10.2. 「数値タイプ」 参照 )

  • /

    除算 :

    mysql> SELECT 3/5;
            -> 0.60
    

    ゼロによる除算は NULL の結果を生成します :

    mysql> SELECT 102/(1-1);
            -> NULL
    

    結果が整数に返還される状況下では、除算は BIGINT 算術でのみ計算されます。

  • DIV

    整数除算。FLOOR() に類似していますが、BIGINT 値でも安全です。

    mysql> SELECT 5 DIV 2;
            -> 2
    
  • N % M

    モジュロ演算。M によって除算された N の余りを戻します。詳細は、項11.4.2. 「数学関数」 の MOD() に関する説明をご覧ください。

Copyright © 1997, 2010, Oracle and/or its affiliates. All rights reserved. Legal Notices
Top / Previous / Next / Up / Table of Contents
© 2010, Oracle Corporation and/or its affiliates