В MariaDB, LOG() е вградена функция, която връща естествения логаритъм на своя аргумент към дадена основа.
Може да се извика с един или два аргумента:
- Когато се извиква с един аргумент, връща естествения логаритъм на аргумента.
- Когато се извиква с два аргумента, връща логаритъма на втория аргумент към основата, посочена в първия аргумент.
Когато се извиква с един аргумент, LOG() е обратен на EXP() , и това е същото като използването на LN() .
Синтаксис
Функцията може да се използва по следните два начина:
LOG(X)
LOG(B,X)
Когато използва първия синтаксис, функцията връща естествения логаритъм на X .
Когато се използва вторият синтаксис, функцията връща логаритъма на X към основата B .
Пример – Синтаксис с единичен аргумент
Ето пример, който използва синтаксис на единичен аргумент:
SELECT LOG(3); Резултат:
+--------------------+ | LOG(3) | +--------------------+ | 1.0986122886681098 | +--------------------+
Ето какво получаваме, когато преминем e :
SELECT LOG(2.718281828459045); Резултат:
+------------------------+ | LOG(2.718281828459045) | +------------------------+ | 1 | +------------------------+
Числото e , известен също като числото на Ойлер, е математическа константа, приблизително равна на 2,718281828459045... и така нататък.
Пример – Синтаксис с два аргумента
Ето пример, който използва синтаксиса на два аргумента:
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'