W MariaDB, LOG()
jest funkcją wbudowaną, która zwraca logarytm naturalny swojego argumentu do podanej bazy.
Można go wywołać z jednym lub dwoma argumentami:
- Po wywołaniu z jednym argumentem zwraca logarytm naturalny argumentu.
- W przypadku wywołania z dwoma argumentami, zwraca logarytm drugiego argumentu do podstawy określonej w pierwszym argumencie.
Po wywołaniu z pojedynczym argumentem, LOG()
jest odwrotnością EXP()
i działa tak samo, jak przy użyciu LN()
.
Składnia
Funkcji można używać na dwa sposoby:
LOG(X)
LOG(B,X)
Używając pierwszej składni, funkcja zwraca logarytm naturalny z X
.
Używając drugiej składni, funkcja zwraca logarytm X
do bazy B
.
Przykład — składnia pojedynczego argumentu
Oto przykład wykorzystujący składnię jednoargumentową:
SELECT LOG(3);
Wynik:
+--------------------+ | LOG(3) | +--------------------+ | 1.0986122886681098 | +--------------------+
Oto, co otrzymujemy, gdy mijamy e :
SELECT LOG(2.718281828459045);
Wynik:
+------------------------+ | LOG(2.718281828459045) | +------------------------+ | 1 | +------------------------+
Liczba e , znana również jako liczba Eulera, jest stałą matematyczną w przybliżeniu równą 2,718281828459045… i tak dalej.
Przykład – składnia dwóch argumentów
Oto przykład, w którym zastosowano składnię dwuargumentową:
SELECT LOG(10, 3);
Wynik:
+--------------------+ | LOG(3) | +--------------------+ | 1.0986122886681098 | +--------------------+
Oto ta sama wartość przy użyciu różnych podstaw:
SELECT
LOG(8, 3),
LOG(16, 3),
LOG(2, 3);
Wynik:
+--------------------+--------------------+--------------------+ | LOG(8, 3) | LOG(16, 3) | LOG(2, 3) | +--------------------+--------------------+--------------------+ | 0.5283208335737188 | 0.3962406251802891 | 1.5849625007211563 | +--------------------+--------------------+--------------------+
Zakresy argumentów
Jeśli X
jest mniejsze lub równe 0
, a następnie NULL
jest zwracany z ostrzeżeniem.
SELECT
LOG(0),
LOG(-1),
LOG(16, -3),
LOG(2, -3);
Wynik:
+--------+---------+-------------+------------+ | LOG(0) | LOG(-1) | LOG(16, -3) | LOG(2, -3) | +--------+---------+-------------+------------+ | NULL | NULL | NULL | NULL | +--------+---------+-------------+------------+ 1 row in set, 4 warnings (0.001 sec)
Sprawdźmy ostrzeżenia:
SHOW WARNINGS;
Wynik:
+---------+------+---------------+ | Level | Code | Message | +---------+------+---------------+ | Warning | 1365 | Division by 0 | | Warning | 1365 | Division by 0 | | Warning | 1365 | Division by 0 | | Warning | 1365 | Division by 0 | +---------+------+---------------+
Ponadto podstawa musi być większa niż 1
. Jeśli nie, NULL
jest zwracany:
SELECT
LOG(0, 3),
LOG(1, 3),
LOG(-1, 3);
Wynik:
+-----------+-----------+------------+ | LOG(0, 3) | LOG(1, 3) | LOG(-1, 3) | +-----------+-----------+------------+ | NULL | NULL | NULL | +-----------+-----------+------------+ 1 row in set, 3 warnings (0.000 sec)
Sprawdź ostrzeżenia:
SHOW WARNINGS;
Wynik:
+---------+------+---------------+ | Level | Code | Message | +---------+------+---------------+ | Warning | 1365 | Division by 0 | | Warning | 1365 | Division by 0 | | Warning | 1365 | Division by 0 | +---------+------+---------------+
Argumenty nieliczbowe
Oto przykład tego, co się dzieje, gdy dostarczamy argumenty nieliczbowe:
SELECT LOG('Homer', 'Simpson');
Wynik:
+-------------------------+ | LOG('Homer', 'Simpson') | +-------------------------+ | NULL | +-------------------------+ 1 row in set, 2 warnings (0.000 sec)
Zobaczmy ostrzeżenie:
SHOW WARNINGS;
Wynik:
+---------+------+-------------------------------------------+ | Level | Code | Message | +---------+------+-------------------------------------------+ | Warning | 1292 | Truncated incorrect DOUBLE value: 'Homer' | | Warning | 1365 | Division by 0 | +---------+------+-------------------------------------------+
Argumenty zerowe
LOG()
zwraca null
jeśli jakikolwiek argument jest null
:
SELECT
LOG(null),
LOG(null, 3),
LOG(16, null),
LOG(null, null);
Wynik:
+-----------+--------------+---------------+-----------------+ | LOG(null) | LOG(null, 3) | LOG(16, null) | LOG(null, null) | +-----------+--------------+---------------+-----------------+ | NULL | NULL | NULL | NULL | +-----------+--------------+---------------+-----------------+
Brakujące argumenty
Wywołanie LOG()
z niewłaściwą liczbą argumentów lub bez żadnych argumentów powoduje błąd:
SELECT LOG();
Wynik:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'LOG'
Oraz:
SELECT LOG(10, 2, 3);
Wynik:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'LOG'