W MariaDB, LOG2() jest funkcją wbudowaną, która zwraca logarytm o podstawie 2 swojego argumentu.
Składnia
Składnia wygląda tak:
LOG2(X)
Gdzie X jest wartością, dla której należy zwrócić logarytm o podstawie 2.
Przykład
Oto przykład do zademonstrowania:
SELECT LOG2(3); Wynik:
+--------------------+ | LOG2(3) | +--------------------+ | 1.5849625007211563 | +--------------------+
Oto kilka innych:
SELECT
LOG2(2),
LOG2(4),
LOG2(8),
LOG2(16); Wynik:
+---------+---------+---------+----------+ | LOG2(2) | LOG2(4) | LOG2(8) | LOG2(16) | +---------+---------+---------+----------+ | 1 | 2 | 3 | 4 | +---------+---------+---------+----------+
Zakresy argumentów
Jeśli X jest mniejsze lub równe 0 , a następnie NULL jest zwracany z ostrzeżeniem.
SELECT
LOG2(0),
LOG2(-1); Wynik:
+---------+----------+ | LOG2(0) | LOG2(-1) | +---------+----------+ | NULL | NULL | +---------+----------+ 1 row in set, 2 warnings (0.000 sec)
Sprawdźmy ostrzeżenia:
SHOW WARNINGS; Wynik:
+---------+------+---------------+ | Level | Code | Message | +---------+------+---------------+ | Warning | 1365 | Division by 0 | | Warning | 1365 | Division by 0 | +---------+------+---------------+
Argumenty nieliczbowe
Oto przykład tego, co się dzieje, gdy dostarczamy argumenty nieliczbowe:
SELECT LOG2('Dog'); Wynik:
+-------------+
| LOG2('Dog') |
+-------------+
| 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: 'Dog' | | Warning | 1365 | Division by 0 | +---------+------+-----------------------------------------+
Argumenty zerowe
LOG2() zwraca null jeśli jego argumentem jest null :
SELECT LOG2(null); Wynik:
+------------+ | LOG2(null) | +------------+ | NULL | +------------+
Brakujące argumenty
Wywołanie LOG2() z niewłaściwą liczbą argumentów lub bez żadnych argumentów powoduje błąd:
SELECT LOG2(); Wynik:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'LOG2'
Oraz:
SELECT LOG2(10, 2); Wynik:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'LOG2'