MariaDB
 sql >> база данни >  >> RDS >> MariaDB

Как работи LOG() в MariaDB

В MariaDB, LOG() е вградена функция, която връща естествения логаритъм на своя аргумент към дадена основа.

Може да се извика с един или два аргумента:

  • Когато се извиква с един аргумент, връща естествения логаритъм на аргумента.
  • Когато се извиква с два аргумента, връща логаритъма на втория аргумент към основата, посочена в първия аргумент.

Когато се извиква с един аргумент, LOG() е обратен на EXP() , и това е същото като използването на LN() .

Синтаксис

Функцията може да се използва по следните два начина:

LOG(X)
LOG(B,X)

Когато използва първия синтаксис, функцията връща естествения логаритъм на X .

Когато се използва вторият синтаксис, функцията връща логаритъма на X към основата B .

Пример – Синтаксис с единичен аргумент

Ето пример, който използва синтаксис на единичен аргумент:

SELECT LOG(3);

Резултат:

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

Ето какво получаваме, когато преминем e :

SELECT LOG(2.718281828459045);

Резултат:

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

Числото e , известен също като числото на Ойлер, е математическа константа, приблизително равна на 2,718281828459045... и така нататък.

Пример – Синтаксис с два аргумента

Ето пример, който използва синтаксиса на два аргумента:

SELECT LOG(10, 3);

Резултат:

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

Ето една и съща стойност, използвайки различни бази:

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

Резултат:

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

Обхвати на аргументи

Ако X е по-малко или равно на 0 , след това NULL се връща с предупреждение.

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

Резултат:

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

Нека проверим предупрежденията:

SHOW WARNINGS;

Резултат:

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

Също така основата трябва да е по-голяма от 1 . Ако не, NULL се връща:

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

Резултат:

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

Проверете предупрежденията:

SHOW WARNINGS;

Резултат:

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

Нечислови аргументи

Ето пример за това какво се случва, когато предоставим нечислови аргументи:

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

Резултат:

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

Нека видим предупреждението:

SHOW WARNINGS;

Резултат:

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

Нулеви аргументи

LOG() връща null ако някой аргумент е null :

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

Резултат:

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

Липсващи аргументи

Извикване на LOG() с грешен брой аргументи или без никакви аргументи води до грешка:

SELECT LOG();

Резултат:

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

И:

SELECT LOG(10, 2, 3);

Резултат:

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

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Поправете „ГРЕШКА 1054 (42S22):Неизвестна колона „colname“ в „клауза за поръчка“ в MariaDB

  2. MariaDB JSON_INSERT() Обяснено

  3. Как ATAN2() работи в MariaDB

  4. 2 начина да разберете към кое тримесечие принадлежи датата в MariaDB

  5. Как да настроите наречени часови зони в MariaDB