En MariaDB, LOG() es una función integrada que devuelve el logaritmo natural de su argumento a una base dada.
Se puede llamar con uno o dos argumentos:
- Cuando se llama con un argumento, devuelve el logaritmo natural del argumento.
- Cuando se llama con dos argumentos, devuelve el logaritmo del segundo argumento a la base especificada en el primer argumento.
Cuando se llama con un solo argumento, LOG() es el inverso de EXP() , y es lo mismo que usar LN() .
Sintaxis
La función se puede utilizar de las dos formas siguientes:
LOG(X)
LOG(B,X)
Al usar la primera sintaxis, la función devuelve el logaritmo natural de X .
Al usar la segunda sintaxis, la función devuelve el logaritmo de X a la base B .
Ejemplo:sintaxis de argumento único
Aquí hay un ejemplo que usa la sintaxis de un solo argumento:
SELECT LOG(3); Resultado:
+--------------------+ | LOG(3) | +--------------------+ | 1.0986122886681098 | +--------------------+
Esto es lo que obtenemos cuando aprobamos e :
SELECT LOG(2.718281828459045); Resultado:
+------------------------+ | LOG(2.718281828459045) | +------------------------+ | 1 | +------------------------+
El número e , también conocido como número de Euler, es una constante matemática aproximadamente igual a 2.718281828459045… y así sucesivamente.
Ejemplo:sintaxis de dos argumentos
Aquí hay un ejemplo que usa la sintaxis de dos argumentos:
SELECT LOG(10, 3); Resultado:
+--------------------+ | LOG(3) | +--------------------+ | 1.0986122886681098 | +--------------------+
Aquí está el mismo valor usando diferentes bases:
SELECT
LOG(8, 3),
LOG(16, 3),
LOG(2, 3); Resultado:
+--------------------+--------------------+--------------------+ | LOG(8, 3) | LOG(16, 3) | LOG(2, 3) | +--------------------+--------------------+--------------------+ | 0.5283208335737188 | 0.3962406251802891 | 1.5849625007211563 | +--------------------+--------------------+--------------------+
Rangos de argumentos
Si X es menor o igual que 0 , luego NULL se devuelve con una advertencia.
SELECT
LOG(0),
LOG(-1),
LOG(16, -3),
LOG(2, -3); Resultado:
+--------+---------+-------------+------------+ | LOG(0) | LOG(-1) | LOG(16, -3) | LOG(2, -3) | +--------+---------+-------------+------------+ | NULL | NULL | NULL | NULL | +--------+---------+-------------+------------+ 1 row in set, 4 warnings (0.001 sec)
Revisemos las advertencias:
SHOW WARNINGS; Resultado:
+---------+------+---------------+ | Level | Code | Message | +---------+------+---------------+ | Warning | 1365 | Division by 0 | | Warning | 1365 | Division by 0 | | Warning | 1365 | Division by 0 | | Warning | 1365 | Division by 0 | +---------+------+---------------+
Además, la base debe ser mayor que 1 . Si no, NULL se devuelve:
SELECT
LOG(0, 3),
LOG(1, 3),
LOG(-1, 3); Resultado:
+-----------+-----------+------------+ | LOG(0, 3) | LOG(1, 3) | LOG(-1, 3) | +-----------+-----------+------------+ | NULL | NULL | NULL | +-----------+-----------+------------+ 1 row in set, 3 warnings (0.000 sec)
Revisa las advertencias:
SHOW WARNINGS; Resultado:
+---------+------+---------------+ | Level | Code | Message | +---------+------+---------------+ | Warning | 1365 | Division by 0 | | 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 LOG('Homer', 'Simpson'); Resultado:
+-------------------------+
| LOG('Homer', 'Simpson') |
+-------------------------+
| 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: 'Homer' | | Warning | 1365 | Division by 0 | +---------+------+-------------------------------------------+
Argumentos nulos
LOG() devuelve null si algún argumento es null :
SELECT
LOG(null),
LOG(null, 3),
LOG(16, null),
LOG(null, null); Resultado:
+-----------+--------------+---------------+-----------------+ | LOG(null) | LOG(null, 3) | LOG(16, null) | LOG(null, null) | +-----------+--------------+---------------+-----------------+ | NULL | NULL | NULL | NULL | +-----------+--------------+---------------+-----------------+
Argumentos faltantes
Llamando a LOG() con el número incorrecto de argumentos, o sin ningún argumento da como resultado un error:
SELECT LOG(); Resultado:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'LOG'
Y:
SELECT LOG(10, 2, 3); Resultado:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'LOG'