sql >> Base de Datos >  >> RDS >> MariaDB

Cómo funciona LOG2() en MariaDB

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'