In MariaDB, LN()
is a built-in function that returns the natural logarithm of its argument. In other words, it returns the base-e logarithm of its argument.
The number e, also known as Euler’s number, is a mathematical constant approximately equal to 2.71828.
LN()
is the inverse of EXP()
, and it’s the same as using LOG()
with the single argument syntax.
Syntax
The syntax goes like this:
LN(X)
Where X
is the value for which to return the natural logarithm from.
Example
Here’s an example:
SELECT LN(3);
Result:
+--------------------+ | LN(3) | +--------------------+ | 1.0986122886681098 | +--------------------+
Here’s what we get when we pass e:
SELECT LN(2.718281828459045);
Result:
+-----------------------+ | LN(2.718281828459045) | +-----------------------+ | 1 | +-----------------------+
Expressions
The argument can include expressions like this:
SELECT LN(2 * 3);
Result:
+-------------------+ | LN(2 * 3) | +-------------------+ | 1.791759469228055 | +-------------------+
Zero Argument
An argument of 0
returns null
with a warning:
SELECT LN(0);
Result:
+-------+ | LN(0) | +-------+ | NULL | +-------+ 1 row in set, 1 warning (0.000 sec)
Show the warning:
SHOW WARNINGS;
Result:
+---------+------+---------------+ | Level | Code | Message | +---------+------+---------------+ | Warning | 1365 | Division by 0 | +---------+------+---------------+
Negative Values
Negative values return null
with a warning:
SELECT LN(-2);
Result:
+--------+ | LN(-2) | +--------+ | NULL | +--------+ 1 row in set, 1 warning (0.002 sec)
Non-Numeric Arguments
Here’s an example of what happens when we provide a non-numeric argument:
SELECT LN('Cat');
Result:
+-----------+ | LN('Cat') | +-----------+ | NULL | +-----------+ 1 row in set, 2 warnings (0.000 sec)
Let’s see the warning:
SHOW WARNINGS;
Result:
+---------+------+-----------------------------------------+ | Level | Code | Message | +---------+------+-----------------------------------------+ | Warning | 1292 | Truncated incorrect DOUBLE value: 'Cat' | | Warning | 1365 | Division by 0 | +---------+------+-----------------------------------------+
Null Arguments
LN()
returns null
if the argument is null
:
SELECT LN(null);
Result:
+----------+ | LN(null) | +----------+ | NULL | +----------+
Missing Arguments
Calling LN()
with the wrong number of arguments, or without any arguments results in an error:
SELECT LN();
Result:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'LN'
And:
SELECT LN(10, 2);
Result:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'LN'