MariaDB
 sql >> Baza danych >  >> RDS >> MariaDB

Jak działa LOG() w MariaDB

W MariaDB, LOG() jest funkcją wbudowaną, która zwraca logarytm naturalny swojego argumentu do podanej bazy.

Można go wywołać z jednym lub dwoma argumentami:

  • Po wywołaniu z jednym argumentem zwraca logarytm naturalny argumentu.
  • W przypadku wywołania z dwoma argumentami, zwraca logarytm drugiego argumentu do podstawy określonej w pierwszym argumencie.

Po wywołaniu z pojedynczym argumentem, LOG() jest odwrotnością EXP() i działa tak samo, jak przy użyciu LN() .

Składnia

Funkcji można używać na dwa sposoby:

LOG(X)
LOG(B,X)

Używając pierwszej składni, funkcja zwraca logarytm naturalny z X .

Używając drugiej składni, funkcja zwraca logarytm X do bazy B .

Przykład — składnia pojedynczego argumentu

Oto przykład wykorzystujący składnię jednoargumentową:

SELECT LOG(3);

Wynik:

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

Oto, co otrzymujemy, gdy mijamy e :

SELECT LOG(2.718281828459045);

Wynik:

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

Liczba e , znana również jako liczba Eulera, jest stałą matematyczną w przybliżeniu równą 2,718281828459045… i tak dalej.

Przykład – składnia dwóch argumentów

Oto przykład, w którym zastosowano składnię dwuargumentową:

SELECT LOG(10, 3);

Wynik:

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

Oto ta sama wartość przy użyciu różnych podstaw:

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

Wynik:

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

Zakresy argumentów

Jeśli X jest mniejsze lub równe 0 , a następnie NULL jest zwracany z ostrzeżeniem.

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

Wynik:

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

Sprawdźmy ostrzeżenia:

SHOW WARNINGS;

Wynik:

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

Ponadto podstawa musi być większa niż 1 . Jeśli nie, NULL jest zwracany:

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

Wynik:

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

Sprawdź ostrzeżenia:

SHOW WARNINGS;

Wynik:

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

Argumenty nieliczbowe

Oto przykład tego, co się dzieje, gdy dostarczamy argumenty nieliczbowe:

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

Wynik:

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

Zobaczmy ostrzeżenie:

SHOW WARNINGS;

Wynik:

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

Argumenty zerowe

LOG() zwraca null jeśli jakikolwiek argument jest null :

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

Wynik:

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

Brakujące argumenty

Wywołanie LOG() z niewłaściwą liczbą argumentów lub bez żadnych argumentów powoduje błąd:

SELECT LOG();

Wynik:

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

Oraz:

SELECT LOG(10, 2, 3);

Wynik:

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. Jak uzyskać krótką nazwę dnia z daty w MariaDB?

  2. Jak UNIX_TIMESTAMP() działa w MariaDB

  3. Jak rozwiązywać problemy z bazą danych MySQL

  4. Jak SUBDATE() działa w MariaDB

  5. Uwagi dotyczące szyfrowania danych w spoczynku dla MariaDB