In MariaDB LOG()
ist eine eingebaute Funktion, die den natürlichen Logarithmus ihres Arguments auf eine gegebene Basis zurückgibt.
Es kann mit einem oder zwei Argumenten aufgerufen werden:
- Gibt beim Aufruf mit einem Argument den natürlichen Logarithmus des Arguments zurück.
- Wenn es mit zwei Argumenten aufgerufen wird, gibt es den Logarithmus des zweiten Arguments zur Basis zurück, die im ersten Argument angegeben ist.
Beim Aufruf mit einem einzigen Argument, LOG()
ist die Umkehrung von EXP()
, und es ist dasselbe wie die Verwendung von LN()
.
Syntax
Die Funktion kann auf zwei Arten verwendet werden:
LOG(X)
LOG(B,X)
Bei Verwendung der ersten Syntax gibt die Funktion den natürlichen Logarithmus von X
zurück .
Bei Verwendung der zweiten Syntax gibt die Funktion den Logarithmus von X
zurück zur Basis B
.
Beispiel – Einzelargument-Syntax
Hier ist ein Beispiel, das die Syntax mit einem einzigen Argument verwendet:
SELECT LOG(3);
Ergebnis:
+--------------------+ | LOG(3) | +--------------------+ | 1.0986122886681098 | +--------------------+
Folgendes erhalten wir, wenn wir an e vorbeikommen :
SELECT LOG(2.718281828459045);
Ergebnis:
+------------------------+ | LOG(2.718281828459045) | +------------------------+ | 1 | +------------------------+
Die Zahl e , auch bekannt als Eulersche Zahl, ist eine mathematische Konstante, die ungefähr gleich 2,718281828459045 ist … und so weiter.
Beispiel – Syntax mit zwei Argumenten
Hier ist ein Beispiel, das die Syntax mit zwei Argumenten verwendet:
SELECT LOG(10, 3);
Ergebnis:
+--------------------+ | LOG(3) | +--------------------+ | 1.0986122886681098 | +--------------------+
Hier ist derselbe Wert mit unterschiedlichen Basen:
SELECT
LOG(8, 3),
LOG(16, 3),
LOG(2, 3);
Ergebnis:
+--------------------+--------------------+--------------------+ | LOG(8, 3) | LOG(16, 3) | LOG(2, 3) | +--------------------+--------------------+--------------------+ | 0.5283208335737188 | 0.3962406251802891 | 1.5849625007211563 | +--------------------+--------------------+--------------------+
Argumentbereiche
Wenn X
kleiner oder gleich 0
ist , dann NULL
wird mit einer Warnung zurückgegeben.
SELECT
LOG(0),
LOG(-1),
LOG(16, -3),
LOG(2, -3);
Ergebnis:
+--------+---------+-------------+------------+ | LOG(0) | LOG(-1) | LOG(16, -3) | LOG(2, -3) | +--------+---------+-------------+------------+ | NULL | NULL | NULL | NULL | +--------+---------+-------------+------------+ 1 row in set, 4 warnings (0.001 sec)
Sehen wir uns die Warnungen an:
SHOW WARNINGS;
Ergebnis:
+---------+------+---------------+ | Level | Code | Message | +---------+------+---------------+ | Warning | 1365 | Division by 0 | | Warning | 1365 | Division by 0 | | Warning | 1365 | Division by 0 | | Warning | 1365 | Division by 0 | +---------+------+---------------+
Außerdem muss die Basis größer als 1
sein . Wenn nicht, NULL
wird zurückgegeben:
SELECT
LOG(0, 3),
LOG(1, 3),
LOG(-1, 3);
Ergebnis:
+-----------+-----------+------------+ | LOG(0, 3) | LOG(1, 3) | LOG(-1, 3) | +-----------+-----------+------------+ | NULL | NULL | NULL | +-----------+-----------+------------+ 1 row in set, 3 warnings (0.000 sec)
Überprüfen Sie die Warnungen:
SHOW WARNINGS;
Ergebnis:
+---------+------+---------------+ | Level | Code | Message | +---------+------+---------------+ | Warning | 1365 | Division by 0 | | Warning | 1365 | Division by 0 | | Warning | 1365 | Division by 0 | +---------+------+---------------+
Nicht numerische Argumente
Hier ist ein Beispiel dafür, was passiert, wenn wir nicht-numerische Argumente angeben:
SELECT LOG('Homer', 'Simpson');
Ergebnis:
+-------------------------+ | LOG('Homer', 'Simpson') | +-------------------------+ | NULL | +-------------------------+ 1 row in set, 2 warnings (0.000 sec)
Sehen wir uns die Warnung an:
SHOW WARNINGS;
Ergebnis:
+---------+------+-------------------------------------------+ | Level | Code | Message | +---------+------+-------------------------------------------+ | Warning | 1292 | Truncated incorrect DOUBLE value: 'Homer' | | Warning | 1365 | Division by 0 | +---------+------+-------------------------------------------+
Null-Argumente
LOG()
gibt null
zurück wenn irgendein Argument null
ist :
SELECT
LOG(null),
LOG(null, 3),
LOG(16, null),
LOG(null, null);
Ergebnis:
+-----------+--------------+---------------+-----------------+ | LOG(null) | LOG(null, 3) | LOG(16, null) | LOG(null, null) | +-----------+--------------+---------------+-----------------+ | NULL | NULL | NULL | NULL | +-----------+--------------+---------------+-----------------+
Fehlende Argumente
Aufruf von LOG()
mit der falschen Anzahl von Argumenten oder ohne Argumente führt zu einem Fehler:
SELECT LOG();
Ergebnis:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'LOG'
Und:
SELECT LOG(10, 2, 3);
Ergebnis:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'LOG'