Mysql 返回一个不正确的 bigint 结果,非常奇怪的错误
Mysql returning incorrect bigint result by one, very strange error
真不知道这是怎么回事。我有一个数据库 table,看起来像这样:
有了这个数据:
当我在 phpmyadmin 中 运行 这个查询 SELECT * FROM game WHERE id = 4
时,我得到了预期的结果:
但是当我通过休息对其进行查询时 api(其中 gameId = 4)
var query = connection.query("SELECT * FROM game WHERE id = ? ",[game.gameId],function(err,rows){
我得到这个结果
其中 adminId 由于某种原因被减一。我真的不知道发生了什么。我试过删除 table 并将其重新设置,以前有人遇到过这种情况吗?或者知道哪里出了问题?真令人沮丧!谢谢
JavaScript 可以安全表示的最大整数是 Number.MAX_SAFE_INTEGER,即 2^53 - 1。您的值大于该值,这会导致一些位丢失。
node-mysql 有 supportBigNumbers
和 bigNumberStrings
选项将 BIGINT
解析为字符串。
var connection = mysql.createConnection({
supportBigNumbers: true,
bigNumberStrings: true
});
真不知道这是怎么回事。我有一个数据库 table,看起来像这样:
有了这个数据:
当我在 phpmyadmin 中 运行 这个查询 SELECT * FROM game WHERE id = 4
时,我得到了预期的结果:
但是当我通过休息对其进行查询时 api(其中 gameId = 4)
var query = connection.query("SELECT * FROM game WHERE id = ? ",[game.gameId],function(err,rows){
我得到这个结果
其中 adminId 由于某种原因被减一。我真的不知道发生了什么。我试过删除 table 并将其重新设置,以前有人遇到过这种情况吗?或者知道哪里出了问题?真令人沮丧!谢谢
JavaScript 可以安全表示的最大整数是 Number.MAX_SAFE_INTEGER,即 2^53 - 1。您的值大于该值,这会导致一些位丢失。
node-mysql 有 supportBigNumbers
和 bigNumberStrings
选项将 BIGINT
解析为字符串。
var connection = mysql.createConnection({
supportBigNumbers: true,
bigNumberStrings: true
});