以下查询让我很困惑
SELECT
'6217001180007179362' = 6217001180007179156 -- 1
, 6217001180007179362 = 6217001180007179156 ; -- 0
「'6217001180007179362'= 6217001180007179156''为何为1?
我的maria DB版本是10.2.11-MariaDB。答案 0 :(得分:2)
在MariaDB / MySQL中输入一系列数字时,它将被解释为数字常数。就您而言,这就是您想要的。
当您输入由单引号引起的一系列数字时,它将被解释为字符串。
比较两个数字常量时-没问题。解决方案就是您所期望的。
但是,如果一个是字符串,则将隐式转换值。它们处于documentation中所述的状态下:
在所有其他情况下,将参数作为浮点数(实数)进行比较。
您的值比浮点数表示的精度更高,因此它们的值看起来与MySQL相等。