I MariaDB, LOG() er en indbygget funktion, der returnerer den naturlige logaritme af sit argument til en given base.
Det kan kaldes med et eller to argumenter:
- Når det kaldes med ét argument, returneres den naturlige logaritme af argumentet.
- Når det kaldes med to argumenter, returnerer logaritmen af det andet argument til den base, der er angivet i det første argument.
Når kaldet med et enkelt argument, LOG() er det omvendte af EXP() , og det er det samme som at bruge LN() .
Syntaks
Funktionen kan bruges på følgende to måder:
LOG(X)
LOG(B,X)
Når du bruger den første syntaks, returnerer funktionen den naturlige logaritme af X .
Når du bruger den anden syntaks, returnerer funktionen logaritmen af X til basen B .
Eksempel – Syntaks for enkeltargument
Her er et eksempel, der bruger syntaksen for enkelt argument:
SELECT LOG(3); Resultat:
+--------------------+ | LOG(3) | +--------------------+ | 1.0986122886681098 | +--------------------+
Her er, hvad vi får, når vi passerer e :
SELECT LOG(2.718281828459045); Resultat:
+------------------------+ | LOG(2.718281828459045) | +------------------------+ | 1 | +------------------------+
Nummeret e , også kendt som Eulers tal, er en matematisk konstant omtrent lig med 2,718281828459045... og så videre.
Eksempel – Syntaks med to argumenter
Her er et eksempel, der bruger syntaksen for to argumenter:
SELECT LOG(10, 3); Resultat:
+--------------------+ | LOG(3) | +--------------------+ | 1.0986122886681098 | +--------------------+
Her er den samme værdi ved brug af forskellige baser:
SELECT
LOG(8, 3),
LOG(16, 3),
LOG(2, 3); Resultat:
+--------------------+--------------------+--------------------+ | LOG(8, 3) | LOG(16, 3) | LOG(2, 3) | +--------------------+--------------------+--------------------+ | 0.5283208335737188 | 0.3962406251802891 | 1.5849625007211563 | +--------------------+--------------------+--------------------+
Argumentintervaller
Hvis X er mindre end eller lig med 0 , derefter NULL returneres med en advarsel.
SELECT
LOG(0),
LOG(-1),
LOG(16, -3),
LOG(2, -3); Resultat:
+--------+---------+-------------+------------+ | LOG(0) | LOG(-1) | LOG(16, -3) | LOG(2, -3) | +--------+---------+-------------+------------+ | NULL | NULL | NULL | NULL | +--------+---------+-------------+------------+ 1 row in set, 4 warnings (0.001 sec)
Lad os tjekke advarslerne:
SHOW WARNINGS; Resultat:
+---------+------+---------------+ | Level | Code | Message | +---------+------+---------------+ | Warning | 1365 | Division by 0 | | Warning | 1365 | Division by 0 | | Warning | 1365 | Division by 0 | | Warning | 1365 | Division by 0 | +---------+------+---------------+
Basen skal også være større end 1 . Hvis ikke, NULL returneres:
SELECT
LOG(0, 3),
LOG(1, 3),
LOG(-1, 3); Resultat:
+-----------+-----------+------------+ | LOG(0, 3) | LOG(1, 3) | LOG(-1, 3) | +-----------+-----------+------------+ | NULL | NULL | NULL | +-----------+-----------+------------+ 1 row in set, 3 warnings (0.000 sec)
Tjek advarslerne:
SHOW WARNINGS; Resultat:
+---------+------+---------------+ | Level | Code | Message | +---------+------+---------------+ | Warning | 1365 | Division by 0 | | Warning | 1365 | Division by 0 | | Warning | 1365 | Division by 0 | +---------+------+---------------+
Ikke-numeriske argumenter
Her er et eksempel på, hvad der sker, når vi giver ikke-numeriske argumenter:
SELECT LOG('Homer', 'Simpson'); Resultat:
+-------------------------+
| LOG('Homer', 'Simpson') |
+-------------------------+
| NULL |
+-------------------------+
1 row in set, 2 warnings (0.000 sec) Lad os se advarslen:
SHOW WARNINGS; Resultat:
+---------+------+-------------------------------------------+ | Level | Code | Message | +---------+------+-------------------------------------------+ | Warning | 1292 | Truncated incorrect DOUBLE value: 'Homer' | | Warning | 1365 | Division by 0 | +---------+------+-------------------------------------------+
Nul-argumenter
LOG() returnerer null hvis et argument er null :
SELECT
LOG(null),
LOG(null, 3),
LOG(16, null),
LOG(null, null); Resultat:
+-----------+--------------+---------------+-----------------+ | LOG(null) | LOG(null, 3) | LOG(16, null) | LOG(null, null) | +-----------+--------------+---------------+-----------------+ | NULL | NULL | NULL | NULL | +-----------+--------------+---------------+-----------------+
Manglende argumenter
Kalder LOG() med det forkerte antal argumenter eller uden argumenter resulterer i en fejl:
SELECT LOG(); Resultat:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'LOG'
Og:
SELECT LOG(10, 2, 3); Resultat:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'LOG'