我有一个表,其中外键是用BIGINT构建的(字段名称是BACKGROUND_CODE)。此字段中的值为:1390500000000000003.以下是我的查询:
mysql> select * from map;
+---------------------+---------+---------------------+-------------------+
| CODE | NAME | BACKGROUND_CODE | DEFAULT_TILE_CODE |
+---------------------+---------+---------------------+-------------------+
| 1100000000000000000 | Taverna | 1390500000000000003 | 12 |
+---------------------+---------+---------------------+-------------------+
1 row in set (0.00 sec)
但是当我在这个表中引用Node.js时,使用var mysql = require(' mysql')模块,它返回的值是:1390500000000000000 看我的代码:
var query = 'SELECT BACKGROUND_CODE FROM MAP WHERE BACKGROUND_CODE = 1390500000000000003';
pool.getConnection(function(err, connection){
connection.query( query , function( err , rows , fields ){
if(err) {
throw err;
}else{
if ( rows.length == 1 ) {
console.log( rows[0].BACKGROUND_CODE );
var result = JSON.stringify( rows[0] );
console.log( result );
callback( result );
} else {
callback( null );
}
}
});
connection.release();
});
此代码生成的日志:
1390500000000000000
{"BACKGROUND_CODE":1390500000000000000}
我已经尝试了一切。好像我在不同的数据库或表上连接,但事实并非如此。我不知道还能做什么。我认为Node.js错误地截断了BIGINT的值。
这是一个错误吗?谁能帮助我......拜托?