MariaDB字符和数字之间的比较

时间:2018-07-25 01:08:45

标签: sql mariadb

以下查询让我很困惑

SELECT 
 '6217001180007179362' = 6217001180007179156      -- 1
 , 6217001180007179362 = 6217001180007179156   ;  -- 0

「'6217001180007179362'= 6217001180007179156''为何为1?

我的maria DB版本是10.2.11-MariaDB。

1 个答案:

答案 0 :(得分:2)

在MariaDB / MySQL中输入一系列数字时,它将被解释为数字常数。就您而言,这就是您想要的。

当您输入由单引号引起的一系列数字时,它将被解释为字符串。

比较两个数字常量时-没问题。解决方案就是您所期望的。

但是,如果一个是字符串,则将隐式转换值。它们处于documentation中所述的状态下:

  

在所有其他情况下,将参数作为浮点数(实数)进行比较。

您的值比浮点数表示的精度更高,因此它们的值看起来与MySQL相等。