12.4.1. 算术操作符

可使用常见的算术操作符。注意就 - + *而言, 若两个参数均为正数,则其计算结果的精确度为 BIGINT (64比特),若其中一个参数为无符号整数, 而其它参数也是整数, 则结果为无符号整数。请参见12.8节,“Cast函数和操作符”

  • +

加号:

mysql> SELECT 3+5;

        -> 8

  • -

减号:

mysql> SELECT 3-5;

        -> -2

  • -

一元减号。更换参数符号。

mysql> SELECT - 2;

        -> -2

注意:若该 操作符同一个BIGINT同时使用,则返回值也是一个BIGINT。这意味着你应当尽量避免对可能产生–263的整数使用 –。

  • *

乘号:

mysql> SELECT 3*5;

        -> 15

mysql> SELECT 18014398509481984*18014398509481984.0;

        -> 324518553658426726783156020576256.0

mysql> SELECT 18014398509481984*18014398509481984;

        -> 0

最后一个表达式的结果是不正确的。原因是整数相乘的结果超过了BIGINT 计算的 64比特范围。 (11.2节,“数值类型”.)

  • /

除号:

mysql> SELECT 3/5;

        -> 0.60

被零除的结果为 NULL

mysql> SELECT 102/(1-1);

        -> NULL

只有当执行的语境中,其结果要被转化为一个整数时 ,除法才会和 BIGINT 算法一起使用。

  • DIV

整数除法。 类似于 FLOOR(),然而使用BIGINT 算法也是可靠的。

mysql> SELECT 5 DIV 2;

        -> 2

关注编程学问公众号