MariaDB
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> MariaDB

Cách LOG () hoạt động trong MariaDB

Trong MariaDB, LOG() là một hàm tích hợp trả về lôgarit tự nhiên của đối số của nó cho một cơ số nhất định.

Nó có thể được gọi với một hoặc hai đối số:

  • Khi được gọi với một đối số, trả về lôgarit tự nhiên của đối số.
  • Khi được gọi với hai đối số, trả về logarit của đối số thứ hai về cơ số được chỉ định trong đối số đầu tiên.

Khi được gọi với một đối số, LOG() là nghịch đảo của EXP() và nó cũng giống như cách sử dụng LN() .

Cú pháp

Hàm có thể được sử dụng theo hai cách sau:

LOG(X)
LOG(B,X)

Khi sử dụng cú pháp đầu tiên, hàm trả về lôgarit tự nhiên của X .

Khi sử dụng cú pháp thứ hai, hàm trả về logarit của X đến cơ sở B .

Ví dụ - Cú pháp đối số đơn

Dưới đây là một ví dụ sử dụng cú pháp đối số duy nhất:

SELECT LOG(3);

Kết quả:

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

Đây là những gì chúng tôi nhận được khi vượt qua e :

SELECT LOG(2.718281828459045);

Kết quả:

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

Số e , còn được gọi là số của Euler, là một hằng số toán học xấp xỉ bằng 2,718281828459045…, v.v.

Ví dụ - Cú pháp hai đối số

Dưới đây là một ví dụ sử dụng cú pháp hai đối số:

SELECT LOG(10, 3);

Kết quả:

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

Đây là giá trị giống nhau khi sử dụng các cơ sở khác nhau:

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

Kết quả:

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

Phạm vi đối số

Nếu X nhỏ hơn hoặc bằng 0 , rồi đến NULL được trả lại với một cảnh báo.

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

Kết quả:

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

Hãy kiểm tra các cảnh báo:

SHOW WARNINGS;

Kết quả:

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

Ngoài ra, cơ sở phải lớn hơn 1 . Nếu không, NULL được trả lại:

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

Kết quả:

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

Kiểm tra các cảnh báo:

SHOW WARNINGS;

Kết quả:

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

Đối số không phải dạng số

Dưới đây là một ví dụ về những gì sẽ xảy ra khi chúng tôi cung cấp các đối số không phải là số:

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

Kết quả:

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

Hãy xem cảnh báo:

SHOW WARNINGS;

Kết quả:

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

Đối số rỗng

LOG() trả về null nếu bất kỳ đối số nào là null :

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

Kết quả:

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

Thiếu đối số

Đang gọi LOG() với số lượng đối số sai hoặc không có bất kỳ đối số nào dẫn đến lỗi:

SELECT LOG();

Kết quả:

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

Và:

SELECT LOG(10, 2, 3);

Kết quả:

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. Hướng dẫn triển khai cơ sở dữ liệu đám mây tự động

  2. Hiển thị đối chiếu trong MariaDB

  3. Xử lý các vấn đề sao chép từ các cụm cơ sở dữ liệu MariaDB không phải GTID sang GTID MariaDB

  4. Cách bảo vệ cơ sở dữ liệu MySQL hoặc MariaDB của bạn khỏi SQL Injection:Phần một

  5. Cách LAST_DAY () hoạt động trong MariaDB