MariaDB
 sql >> Base de Dados >  >> RDS >> MariaDB

Como LOG2() funciona no MariaDB


No MariaDB, LOG2() é uma função interna que retorna o logaritmo de base 2 de seu argumento.

Sintaxe


A sintaxe fica assim:
LOG2(X)

Onde X é o valor para o qual retornar o logaritmo de base 2.

Exemplo


Segue um exemplo para demonstrar:
SELECT LOG2(3);

Resultado:
+--------------------+
| LOG2(3)            |
+--------------------+
| 1.5849625007211563 |
+--------------------+

Aqui estão mais alguns:
SELECT 
    LOG2(2),
    LOG2(4),
    LOG2(8),
    LOG2(16);

Resultado:
+---------+---------+---------+----------+
| LOG2(2) | LOG2(4) | LOG2(8) | LOG2(16) |
+---------+---------+---------+----------+
|       1 |       2 |       3 |        4 |
+---------+---------+---------+----------+

Intervalos de argumentos


Se X é menor ou igual a 0 , então NULL é retornado com um aviso.
SELECT 
    LOG2(0),
    LOG2(-1);

Resultado:
+---------+----------+
| LOG2(0) | LOG2(-1) |
+---------+----------+
|    NULL |     NULL |
+---------+----------+
1 row in set, 2 warnings (0.000 sec)

Vamos verificar os avisos:
SHOW WARNINGS;

Resultado:
+---------+------+---------------+
| Level   | Code | Message       |
+---------+------+---------------+
| Warning | 1365 | Division by 0 |
| Warning | 1365 | Division by 0 |
+---------+------+---------------+

Argumentos não numéricos


Aqui está um exemplo do que acontece quando fornecemos argumentos não numéricos:
SELECT LOG2('Dog');

Resultado:
+-------------+
| LOG2('Dog') |
+-------------+
|        NULL |
+-------------+
1 row in set, 2 warnings (0.000 sec)

Vejamos o aviso:
SHOW WARNINGS;

Resultado:
+---------+------+-----------------------------------------+
| Level   | Code | Message                                 |
+---------+------+-----------------------------------------+
| Warning | 1292 | Truncated incorrect DOUBLE value: 'Dog' |
| Warning | 1365 | Division by 0                           |
+---------+------+-----------------------------------------+

Argumentos nulos


LOG2() retorna null se seu argumento for null :
SELECT LOG2(null);

Resultado:
+------------+
| LOG2(null) |
+------------+
|       NULL |
+------------+

Argumentos ausentes


Chamando LOG2() com o número errado de argumentos ou sem argumentos resulta em um erro:
SELECT LOG2();

Resultado:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'LOG2'

E:
SELECT LOG2(10, 2);

Resultado:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'LOG2'