sql >> Databáze >  >> RDS >> MariaDB

Jak funguje LOG() v MariaDB

V MariaDB, LOG() je vestavěná funkce, která vrací přirozený logaritmus svého argumentu na daný základ.

Lze jej volat s jedním nebo dvěma argumenty:

  • Při volání s jedním argumentem vrátí přirozený logaritmus argumentu.
  • Při volání se dvěma argumenty vrátí logaritmus druhého argumentu na základ zadaný v prvním argumentu.

Při volání s jedním argumentem LOG() je inverzní k EXP() a je to stejné jako při použití LN() .

Syntaxe

Funkci lze použít dvěma následujícími způsoby:

LOG(X)
LOG(B,X)

Při použití první syntaxe vrací funkce přirozený logaritmus X .

Při použití druhé syntaxe vrací funkce logaritmus X na základ B .

Příklad – Syntaxe jednoho argumentu

Zde je příklad, který používá syntaxi jediného argumentu:

SELECT LOG(3);

Výsledek:

+--------------------+
| LOG(3)             |
+--------------------+
| 1.0986122886681098 |
+--------------------+

Když projedeme e, dostaneme toto :

SELECT LOG(2.718281828459045);

Výsledek:

+------------------------+
| LOG(2.718281828459045) |
+------------------------+
|                      1 |
+------------------------+

Číslo e , také známé jako Eulerovo číslo, je matematická konstanta přibližně rovna 2,718281828459045… a tak dále.

Příklad – Syntaxe dvou argumentů

Zde je příklad, který používá syntaxi dvou argumentů:

SELECT LOG(10, 3);

Výsledek:

+--------------------+
| LOG(3)             |
+--------------------+
| 1.0986122886681098 |
+--------------------+

Zde je stejná hodnota na různých základech:

SELECT 
    LOG(8, 3),
    LOG(16, 3),
    LOG(2, 3);

Výsledek:

+--------------------+--------------------+--------------------+
| LOG(8, 3)          | LOG(16, 3)         | LOG(2, 3)          |
+--------------------+--------------------+--------------------+
| 0.5283208335737188 | 0.3962406251802891 | 1.5849625007211563 |
+--------------------+--------------------+--------------------+

Rozsahy argumentů

Pokud X je menší nebo rovno 0 a poté NULL se vrátí s varováním.

SELECT 
    LOG(0),
    LOG(-1),
    LOG(16, -3),
    LOG(2, -3);

Výsledek:

+--------+---------+-------------+------------+
| LOG(0) | LOG(-1) | LOG(16, -3) | LOG(2, -3) |
+--------+---------+-------------+------------+
|   NULL |    NULL |        NULL |       NULL |
+--------+---------+-------------+------------+
1 row in set, 4 warnings (0.001 sec)

Podívejme se na varování:

SHOW WARNINGS;

Výsledek:

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

Také základ musí být větší než 1 . Pokud ne, NULL je vráceno:

SELECT 
    LOG(0, 3),
    LOG(1, 3),
    LOG(-1, 3);

Výsledek:

+-----------+-----------+------------+
| LOG(0, 3) | LOG(1, 3) | LOG(-1, 3) |
+-----------+-----------+------------+
|      NULL |      NULL |       NULL |
+-----------+-----------+------------+
1 row in set, 3 warnings (0.000 sec)

Zkontrolujte varování:

SHOW WARNINGS;

Výsledek:

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

Nečíselné argumenty

Zde je příklad toho, co se stane, když poskytneme nečíselné argumenty:

SELECT LOG('Homer', 'Simpson');

Výsledek:

+-------------------------+
| LOG('Homer', 'Simpson') |
+-------------------------+
|                    NULL |
+-------------------------+
1 row in set, 2 warnings (0.000 sec)

Podívejme se na varování:

SHOW WARNINGS;

Výsledek:

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

Nulové argumenty

LOG() vrátí null pokud je nějaký argument null :

SELECT 
    LOG(null),
    LOG(null, 3),
    LOG(16, null),
    LOG(null, null);

Výsledek:

+-----------+--------------+---------------+-----------------+
| LOG(null) | LOG(null, 3) | LOG(16, null) | LOG(null, null) |
+-----------+--------------+---------------+-----------------+
|      NULL |         NULL |          NULL |            NULL |
+-----------+--------------+---------------+-----------------+

Chybí argumenty

Volání LOG() s nesprávným počtem argumentů nebo bez jakýchkoli argumentů vede k chybě:

SELECT LOG();

Výsledek:

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

A:

SELECT LOG(10, 2, 3);

Výsledek:

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

  1. Generujte DEFAULT hodnoty v CTE UPSERT pomocí PostgreSQL 9.3

  2. Jak resetuji výchozí heslo uživatele postgresql 9.2 (obvykle 'postgres') na mac os x 10.8.2?

  3. Spark Dataframes UPSERT to Postgres Table

  4. Aktualizujte sloupec tabulky sloupcem jiné tabulky v PostgreSQL