gpt4 book ai didi

MySQL自动计算IBAN bigint溢出

转载 作者:行者123 更新时间:2023-11-29 13:23:50 27 4
gpt4 key购买 nike

这是我在 stackoverflow 上发布的第一个问题,我希望有人可以帮助我。到目前为止,我找不到有人在这里问类似的问题。

我想检查德国 IBAN 是否正确。原则上,这很简单:将 Bank_number(8 位数字)与 Account_Number(10 位数字)、相当于 DE 的数字(1314 = 4 位数字)和支票号码(2 位数字)连接起来,然后计算模除法并结果应该是 1。

这是我在 MySQL 中输入的代码:

SELECT MOD(500105175404777100131451,97) as a
, MOD(CONVERT(CONCAT("50010517","5404777100","1314","51"), UNSIGNED),97) as b
, CONVERT(CONCAT("50010517","5404777100","1314","51"), UNSIGNED) as c

这是我从 MySQL 得到的结果:

a   b    c
1 60 18446744073709551615

如您所见,当我手动输入整个数字时,我得到了正确的结果 (1),但是当我尝试从单独的字符串构造数字时(到目前为止,它们以这种格式保存在数据库中) ,模除法不起作用,因为字符串被错误地转换为数字。

谁能告诉我问题出在哪里?

我尝试使用“BIGINT”而不是“UNSIGNED”,但随后出现错误

"You have an error in your SQL syntax; check the manual that corresponds to your MariaDB
server version for the right syntax to use near 'BIGINT"

任何帮助将不胜感激。

谢谢斯蒂芬

最佳答案

使用DECIMAL(24)数字类型。

SELECT MOD(500105175404777100131451,97) as a
, MOD(CONVERT(CONCAT("50010517","5404777100","1314","51"), decimal(24)),97) as b
, CONVERT(CONCAT("50010517","5404777100","1314","51"), decimal(24)) as c

关于MySQL自动计算IBAN bigint溢出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20404224/

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