How LN() Works in MariaDB

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'