В MariaDB, LOG2()
е вградена функция, която връща логаритъма на база 2 на своя аргумент.
Синтаксис
Синтаксисът е така:
LOG2(X)
Където X
е стойността, за която да се върне логаритъмът с основа 2.
Пример
Ето пример за демонстрация:
SELECT LOG2(3);
Резултат:
+--------------------+ | LOG2(3) | +--------------------+ | 1.5849625007211563 | +--------------------+
Ето още няколко:
SELECT
LOG2(2),
LOG2(4),
LOG2(8),
LOG2(16);
Резултат:
+---------+---------+---------+----------+ | LOG2(2) | LOG2(4) | LOG2(8) | LOG2(16) | +---------+---------+---------+----------+ | 1 | 2 | 3 | 4 | +---------+---------+---------+----------+
Обхвати на аргументи
Ако X
е по-малко или равно на 0
, след това NULL
се връща с предупреждение.
SELECT
LOG2(0),
LOG2(-1);
Резултат:
+---------+----------+ | LOG2(0) | LOG2(-1) | +---------+----------+ | NULL | NULL | +---------+----------+ 1 row in set, 2 warnings (0.000 sec)
Нека проверим предупрежденията:
SHOW WARNINGS;
Резултат:
+---------+------+---------------+ | Level | Code | Message | +---------+------+---------------+ | Warning | 1365 | Division by 0 | | Warning | 1365 | Division by 0 | +---------+------+---------------+
Нечислови аргументи
Ето пример за това какво се случва, когато предоставим нечислови аргументи:
SELECT LOG2('Dog');
Резултат:
+-------------+ | LOG2('Dog') | +-------------+ | NULL | +-------------+ 1 row in set, 2 warnings (0.000 sec)
Нека видим предупреждението:
SHOW WARNINGS;
Резултат:
+---------+------+-----------------------------------------+ | Level | Code | Message | +---------+------+-----------------------------------------+ | Warning | 1292 | Truncated incorrect DOUBLE value: 'Dog' | | Warning | 1365 | Division by 0 | +---------+------+-----------------------------------------+
Нулеви аргументи
LOG2()
връща null
ако неговият аргумент е null
:
SELECT LOG2(null);
Резултат:
+------------+ | LOG2(null) | +------------+ | NULL | +------------+
Липсващи аргументи
Извикване на LOG2()
с грешен брой аргументи или без никакви аргументи води до грешка:
SELECT LOG2();
Резултат:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'LOG2'
И:
SELECT LOG2(10, 2);
Резултат:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'LOG2'