MySQL 函数

MySQL LOG() 函数返回给定数字的自然对数或指定底数的对数。在特殊情况下,它返回以下内容:

  • 如果数字小于或等于0,则返回NULL。
  • 如果base小于或等于0,则返回NULL。
  • 如果base等于1,则返回NULL。 

语法

/* 数字的自然对数 */
LOG(number)

/* 数到指定底数的对数 */
LOG(base, number) 

参数

base指定数字。必须大于 0 且不等于 1。
number必填。 指定数量。必须大于 0。

返回值

返回给定数字的自然对数或指定底数的对数。

示例 1:

下面的示例展示了 LOG() 函数的用法。

mysql> SELECT LOG(1);
Result: 0

mysql> SELECT LOG(1.5);
Result: 0.4054651081081644

mysql> SELECT LOG(5);
Result: 1.6094379124341003

mysql> SELECT LOG(0);
Result: NULL

mysql> SELECT LOG(3, 4);
Result: 1.2618595071429148

mysql> SELECT LOG(0.7, 0.8);
Result: 0.6256216061886871

mysql> SELECT LOG(0.5, 10);
Result: -3.3219280948873626

mysql> SELECT LOG(5, 25);
Result: 2 

示例 2:

考虑一个名为 Sample 的数据库表,其中包含以下记录:

Datax
Data 10.5
Data 21
Data 35
Data 410
Data 550

下面给出的语句可用于计算列 <的以 10 为底的对数i>x.

SELECT *, LOG(10, x) AS LOG_Value FROM Sample; 

这将产生如下所示的结果:

DataxLOG_Value
Data 10.5-0.30102999566398114
Data 210
Data 350.6989700043360187
Data 4101
Data 5501.6989700043360185

示例 3:

考虑一个数据库名为Sample的表,包含以下记录:

Dataxy
Data 10.52
Data 212
Data 352
Data 41010
Data 55010

计算x列记录的对数,以y<列记录为底/i>,可以使用以下查询:

SELECT *, LOG(y, x) AS LOG_Value FROM Sample; 

这将产生如下所示的结果:

DataxyLOG_Value
Data 10.52-1
Data 2120
Data 3522.321928094887362
Data 410101
Data 550101.6989700043360185