MariaDBでは、LOG()
は、引数の自然対数を指定された基数に返す組み込み関数です。
1つまたは2つの引数で呼び出すことができます:
- 1つの引数で呼び出されると、引数の自然対数を返します。
- 2つの引数を指定して呼び出された場合、2番目の引数の対数を最初の引数で指定された底に返します。
単一の引数で呼び出された場合、LOG()
EXP()
の逆です 、LN()
を使用するのと同じです 。
構文
この関数は、次の2つの方法で使用できます。
LOG(X)
LOG(B,X)
最初の構文を使用する場合、関数はX
の自然対数を返します 。
2番目の構文を使用する場合、関数はX
の対数を返します。 ベースへB
。
例–単一引数の構文
単一の引数の構文を使用する例を次に示します。
SELECT LOG(3);
結果:
+--------------------+ | LOG(3) | +--------------------+ | 1.0986122886681098 | +--------------------+
eを通過すると次のようになります :
SELECT LOG(2.718281828459045);
結果:
+------------------------+ | LOG(2.718281828459045) | +------------------------+ | 1 | +------------------------+
番号e 、オイラーの数とも呼ばれ、2.718281828459045などにほぼ等しい数学定数です。
例–2つの引数の構文
2つの引数の構文を使用する例を次に示します。
SELECT LOG(10, 3);
結果:
+--------------------+ | LOG(3) | +--------------------+ | 1.0986122886681098 | +--------------------+
異なるベースを使用した同じ値は次のとおりです:
SELECT
LOG(8, 3),
LOG(16, 3),
LOG(2, 3);
結果:
+--------------------+--------------------+--------------------+ | LOG(8, 3) | LOG(16, 3) | LOG(2, 3) | +--------------------+--------------------+--------------------+ | 0.5283208335737188 | 0.3962406251802891 | 1.5849625007211563 | +--------------------+--------------------+--------------------+
引数の範囲
X
の場合 0
以下 、次にNULL
警告とともに返されます。
SELECT
LOG(0),
LOG(-1),
LOG(16, -3),
LOG(2, -3);
結果:
+--------+---------+-------------+------------+ | LOG(0) | LOG(-1) | LOG(16, -3) | LOG(2, -3) | +--------+---------+-------------+------------+ | NULL | NULL | NULL | NULL | +--------+---------+-------------+------------+ 1 row in set, 4 warnings (0.001 sec)
警告を確認しましょう:
SHOW WARNINGS;
結果:
+---------+------+---------------+ | Level | Code | Message | +---------+------+---------------+ | Warning | 1365 | Division by 0 | | Warning | 1365 | Division by 0 | | Warning | 1365 | Division by 0 | | Warning | 1365 | Division by 0 | +---------+------+---------------+
また、ベースは1
より大きくなければなりません 。そうでない場合は、NULL
返されます:
SELECT
LOG(0, 3),
LOG(1, 3),
LOG(-1, 3);
結果:
+-----------+-----------+------------+ | LOG(0, 3) | LOG(1, 3) | LOG(-1, 3) | +-----------+-----------+------------+ | NULL | NULL | NULL | +-----------+-----------+------------+ 1 row in set, 3 warnings (0.000 sec)
警告を確認してください:
SHOW WARNINGS;
結果:
+---------+------+---------------+ | Level | Code | Message | +---------+------+---------------+ | Warning | 1365 | Division by 0 | | Warning | 1365 | Division by 0 | | Warning | 1365 | Division by 0 | +---------+------+---------------+
非数値引数
数値以外の引数を指定するとどうなるかの例を次に示します。
SELECT LOG('Homer', 'Simpson');
結果:
+-------------------------+ | LOG('Homer', 'Simpson') | +-------------------------+ | NULL | +-------------------------+ 1 row in set, 2 warnings (0.000 sec)
警告を見てみましょう:
SHOW WARNINGS;
結果:
+---------+------+-------------------------------------------+ | Level | Code | Message | +---------+------+-------------------------------------------+ | Warning | 1292 | Truncated incorrect DOUBLE value: 'Homer' | | Warning | 1365 | Division by 0 | +---------+------+-------------------------------------------+
ヌル引数
LOG()
null
を返します 引数がnull
の場合 :
SELECT
LOG(null),
LOG(null, 3),
LOG(16, null),
LOG(null, null);
結果:
+-----------+--------------+---------------+-----------------+ | LOG(null) | LOG(null, 3) | LOG(16, null) | LOG(null, null) | +-----------+--------------+---------------+-----------------+ | NULL | NULL | NULL | NULL | +-----------+--------------+---------------+-----------------+
引数がありません
LOG()
を呼び出す 引数の数が間違っているか、引数がない場合、エラーが発生します:
SELECT LOG();
結果:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'LOG'
そして:
SELECT LOG(10, 2, 3);
結果:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'LOG'