mysql返回不正确的bigint结果,非常奇怪的错误
Posted
技术标签:
【中文标题】mysql返回不正确的bigint结果,非常奇怪的错误【英文标题】:Mysql returning incorrect bigint result by one, very strange error 【发布时间】:2015-10-06 15:38:54 【问题描述】:我真的不知道这里发生了什么。我有一个如下所示的数据库表:
有了这些数据:
当我在 phpmyadmin 中运行此查询 SELECT * FROM game WHERE id = 4
时,我会按预期返回此结果:
但是当我通过 rest api (其中 gameId = 4) 对其进行查询时
var query = connection.query("SELECT * FROM game WHERE id = ? ",[game.gameId],function(err,rows)
我得到了这个结果
其中 adminId 因某种原因被减一。我真的不知道发生了什么。我曾尝试将桌子放下并重新设置,以前有没有人经历过这种情况?或者知道有什么问题吗?这很令人沮丧!谢谢
【问题讨论】:
【参考方案1】:javascript 可以安全表示的最大整数是Number.MAX_SAFE_INTEGER,即 2^53 - 1。您的值大于该值,这会导致一些位丢失。
node-mysql 具有将BIGINT
s 解析为字符串的supportBigNumbers
和bigNumberStrings
选项。
var connection = mysql.createConnection(
supportBigNumbers: true,
bigNumberStrings: true
);
【讨论】:
哇,我感激不尽!非常好的帮助,谢谢。以上是关于mysql返回不正确的bigint结果,非常奇怪的错误的主要内容,如果未能解决你的问题,请参考以下文章
mysql bigint ,int , smallint,tinyint 的范围
在 VIEW 中使用的 Mysql 函数不会返回正确的结果。
使用pgAdmin 4时,bigint不正确地插入JSONB列