在node.js中查询MySQL会截断错误BIGINT

时间:2014-05-09 22:09:22

标签: mysql node.js truncate bigint

我有一个表,其中外键是用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的值。

这是一个错误吗?谁能帮助我......拜托?

0 个答案:

没有答案