V MariaDB, LOG()
je vestavěná funkce, která vrací přirozený logaritmus svého argumentu na daný základ.
Lze jej volat s jedním nebo dvěma argumenty:
- Při volání s jedním argumentem vrátí přirozený logaritmus argumentu.
- Při volání se dvěma argumenty vrátí logaritmus druhého argumentu na základ zadaný v prvním argumentu.
Při volání s jedním argumentem LOG()
je inverzní k EXP()
a je to stejné jako při použití LN()
.
Syntaxe
Funkci lze použít dvěma následujícími způsoby:
LOG(X)
LOG(B,X)
Při použití první syntaxe vrací funkce přirozený logaritmus X
.
Při použití druhé syntaxe vrací funkce logaritmus X
na základ B
.
Příklad – Syntaxe jednoho argumentu
Zde je příklad, který používá syntaxi jediného argumentu:
SELECT LOG(3);
Výsledek:
+--------------------+ | LOG(3) | +--------------------+ | 1.0986122886681098 | +--------------------+
Když projedeme e, dostaneme toto :
SELECT LOG(2.718281828459045);
Výsledek:
+------------------------+ | LOG(2.718281828459045) | +------------------------+ | 1 | +------------------------+
Číslo e , také známé jako Eulerovo číslo, je matematická konstanta přibližně rovna 2,718281828459045… a tak dále.
Příklad – Syntaxe dvou argumentů
Zde je příklad, který používá syntaxi dvou argumentů:
SELECT LOG(10, 3);
Výsledek:
+--------------------+ | LOG(3) | +--------------------+ | 1.0986122886681098 | +--------------------+
Zde je stejná hodnota na různých základech:
SELECT
LOG(8, 3),
LOG(16, 3),
LOG(2, 3);
Výsledek:
+--------------------+--------------------+--------------------+ | LOG(8, 3) | LOG(16, 3) | LOG(2, 3) | +--------------------+--------------------+--------------------+ | 0.5283208335737188 | 0.3962406251802891 | 1.5849625007211563 | +--------------------+--------------------+--------------------+
Rozsahy argumentů
Pokud X
je menší nebo rovno 0
a poté NULL
se vrátí s varováním.
SELECT
LOG(0),
LOG(-1),
LOG(16, -3),
LOG(2, -3);
Výsledek:
+--------+---------+-------------+------------+ | LOG(0) | LOG(-1) | LOG(16, -3) | LOG(2, -3) | +--------+---------+-------------+------------+ | NULL | NULL | NULL | NULL | +--------+---------+-------------+------------+ 1 row in set, 4 warnings (0.001 sec)
Podívejme se na varování:
SHOW WARNINGS;
Výsledek:
+---------+------+---------------+ | Level | Code | Message | +---------+------+---------------+ | Warning | 1365 | Division by 0 | | Warning | 1365 | Division by 0 | | Warning | 1365 | Division by 0 | | Warning | 1365 | Division by 0 | +---------+------+---------------+
Také základ musí být větší než 1
. Pokud ne, NULL
je vráceno:
SELECT
LOG(0, 3),
LOG(1, 3),
LOG(-1, 3);
Výsledek:
+-----------+-----------+------------+ | LOG(0, 3) | LOG(1, 3) | LOG(-1, 3) | +-----------+-----------+------------+ | NULL | NULL | NULL | +-----------+-----------+------------+ 1 row in set, 3 warnings (0.000 sec)
Zkontrolujte varování:
SHOW WARNINGS;
Výsledek:
+---------+------+---------------+ | Level | Code | Message | +---------+------+---------------+ | Warning | 1365 | Division by 0 | | Warning | 1365 | Division by 0 | | Warning | 1365 | Division by 0 | +---------+------+---------------+
Nečíselné argumenty
Zde je příklad toho, co se stane, když poskytneme nečíselné argumenty:
SELECT LOG('Homer', 'Simpson');
Výsledek:
+-------------------------+ | LOG('Homer', 'Simpson') | +-------------------------+ | NULL | +-------------------------+ 1 row in set, 2 warnings (0.000 sec)
Podívejme se na varování:
SHOW WARNINGS;
Výsledek:
+---------+------+-------------------------------------------+ | Level | Code | Message | +---------+------+-------------------------------------------+ | Warning | 1292 | Truncated incorrect DOUBLE value: 'Homer' | | Warning | 1365 | Division by 0 | +---------+------+-------------------------------------------+
Nulové argumenty
LOG()
vrátí null
pokud je nějaký argument null
:
SELECT
LOG(null),
LOG(null, 3),
LOG(16, null),
LOG(null, null);
Výsledek:
+-----------+--------------+---------------+-----------------+ | LOG(null) | LOG(null, 3) | LOG(16, null) | LOG(null, null) | +-----------+--------------+---------------+-----------------+ | NULL | NULL | NULL | NULL | +-----------+--------------+---------------+-----------------+
Chybí argumenty
Volání LOG()
s nesprávným počtem argumentů nebo bez jakýchkoli argumentů vede k chybě:
SELECT LOG();
Výsledek:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'LOG'
A:
SELECT LOG(10, 2, 3);
Výsledek:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'LOG'