Nodejs node-mysql查询结果数据类型

时间:2015-08-01 14:58:16

标签: mysql sql node.js node-mysql

我无法弄清楚如何从回调函数中的mysql查询中获取数据。例如,我的查询如下:

mysqlConnection.query('SELECT COUNT(*) from card AS count', function (err, result) {
    if (err) {
        throw err;
    } 
    else {
        console.log(Type.of(result));
        console.log("card count is as: " + result.count);
        console.log("Card count is: " + result["COUNT(*)"]);
        console.log(result);
    }
});

打印出来:

[Function: Array]
card count is as: undefined
Card count is: undefined
[ { 'COUNT(*)': 3 } ]

什么是" [功能:数组]"数据类型以及如何从中选择变量?一系列功能?为什么" result.count"未定义,即使我在查询中使用AS事物。

以下查询与下面的查询有何不同?

mysqlConnection.query('SELECT COUNT(*) from card AS count', function (err, rows, fields) {
});

mysqlConnection.query('SELECT COUNT(*) from card AS count', function (err, result) {
});

我何时使用另一个而另一个?

2 个答案:

答案 0 :(得分:1)

将您的查询更改为

SELECT COUNT(*) AS count from card 

列别名应在选择列后定义,而不是在from

之后定义

答案 1 :(得分:1)

使用function (err, rows, fields)的回调更适合选择正在使用的数据,然后行将由数组数组填充。因此,在您的情况下,rows[0]['COUNT(*)']将是您的计数。

对于具有多行的选择,您可以遍历结果。

作为旁注,我认为你的意思是SELECT COUNT(*) AS count from card,然后可以更简单地访问rows[0].count