MariaDB
 sql >> Datenbank >  >> RDS >> MariaDB

Wie LOG() in MariaDB funktioniert

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'