En MariaDB, LOG2()
es una función integrada que devuelve el logaritmo en base 2 de su argumento.
Sintaxis
La sintaxis es así:
LOG2(X)
Donde X
es el valor para el que se devuelve el logaritmo en base 2.
Ejemplo
Aquí hay un ejemplo para demostrarlo:
SELECT LOG2(3);
Resultado:
+--------------------+ | LOG2(3) | +--------------------+ | 1.5849625007211563 | +--------------------+
Aquí hay algunos más:
SELECT
LOG2(2),
LOG2(4),
LOG2(8),
LOG2(16);
Resultado:
+---------+---------+---------+----------+ | LOG2(2) | LOG2(4) | LOG2(8) | LOG2(16) | +---------+---------+---------+----------+ | 1 | 2 | 3 | 4 | +---------+---------+---------+----------+
Rangos de argumentos
Si X
es menor o igual que 0
, luego NULL
se devuelve con una advertencia.
SELECT
LOG2(0),
LOG2(-1);
Resultado:
+---------+----------+ | LOG2(0) | LOG2(-1) | +---------+----------+ | NULL | NULL | +---------+----------+ 1 row in set, 2 warnings (0.000 sec)
Revisemos las advertencias:
SHOW WARNINGS;
Resultado:
+---------+------+---------------+ | Level | Code | Message | +---------+------+---------------+ | Warning | 1365 | Division by 0 | | Warning | 1365 | Division by 0 | +---------+------+---------------+
Argumentos no numéricos
Este es un ejemplo de lo que sucede cuando proporcionamos argumentos no numéricos:
SELECT LOG2('Dog');
Resultado:
+-------------+ | LOG2('Dog') | +-------------+ | NULL | +-------------+ 1 row in set, 2 warnings (0.000 sec)
Veamos la advertencia:
SHOW WARNINGS;
Resultado:
+---------+------+-----------------------------------------+ | Level | Code | Message | +---------+------+-----------------------------------------+ | Warning | 1292 | Truncated incorrect DOUBLE value: 'Dog' | | Warning | 1365 | Division by 0 | +---------+------+-----------------------------------------+
Argumentos nulos
LOG2()
devuelve null
si su argumento es null
:
SELECT LOG2(null);
Resultado:
+------------+ | LOG2(null) | +------------+ | NULL | +------------+
Argumentos faltantes
Llamando a LOG2()
con el número incorrecto de argumentos, o sin ningún argumento da como resultado un error:
SELECT LOG2();
Resultado:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'LOG2'
Y:
SELECT LOG2(10, 2);
Resultado:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'LOG2'