gpt4 book ai didi

sql - MariaDB char 和 number 比较

转载 作者:行者123 更新时间:2023-12-02 00:59:37 26 4
gpt4 key购买 nike

下面的查询让我很困惑

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

为什么“'6217001180007179362' = 6217001180007179156”是 1?

我的 maria DB 版本是 10.2.11-MariaDB。

最佳答案

当您在 MariaDB/MySQL 中输入一系列数字时,它被解释为数字常量。在您的情况下,这可以满足您的要求。

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

当您比较两个数值常量时——嗯,没有问题。解决方案如您所愿。

但是,如果一个是字符串,则值会被隐式转换。它们属于这种情况,如 documentation 中所述。 :

In all other cases, the arguments are compared as floating-point (real) numbers.

您的值比 float 更精确,因此它们的值看起来与 MySQL 相同。

关于sql - MariaDB char 和 number 比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51509520/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com