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 的数据库表,其中包含以下记录:
Data | x |
---|---|
Data 1 | 0.5 |
Data 2 | 1 |
Data 3 | 5 |
Data 4 | 10 |
Data 5 | 50 |
下面给出的语句可用于计算列 <的以 10 为底的对数i>x.
SELECT *, LOG(10, x) AS LOG_Value FROM Sample;
这将产生如下所示的结果:
Data | x | LOG_Value |
---|---|---|
Data 1 | 0.5 | -0.30102999566398114 |
Data 2 | 1 | 0 |
Data 3 | 5 | 0.6989700043360187 |
Data 4 | 10 | 1 |
Data 5 | 50 | 1.6989700043360185 |
示例 3:
考虑一个数据库名为Sample的表,包含以下记录:
Data | x | y |
---|---|---|
Data 1 | 0.5 | 2 |
Data 2 | 1 | 2 |
Data 3 | 5 | 2 |
Data 4 | 10 | 10 |
Data 5 | 50 | 10 |
计算x列记录的对数,以y<列记录为底/i>,可以使用以下查询:
SELECT *, LOG(y, x) AS LOG_Value FROM Sample;
这将产生如下所示的结果:
Data | x | y | LOG_Value |
---|---|---|---|
Data 1 | 0.5 | 2 | -1 |
Data 2 | 1 | 2 | 0 |
Data 3 | 5 | 2 | 2.321928094887362 |
Data 4 | 10 | 10 | 1 |
Data 5 | 50 | 10 | 1.6989700043360185 |