【问题标题】:Nodejs node-mysql query result data typenodejs node-mysql 查询结果数据类型
【发布时间】:2015-10-24 03:18:17
【问题描述】:

我无法弄清楚如何在回调函数中从 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 } ]

什么是“[Function: Array]”数据类型以及如何从中选择变量?函数数组?为什么“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) {
});

我什么时候用另一个,什么时候用另一个?

【问题讨论】:

    标签: mysql sql node.js node-mysql


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

      将您的查询更改为

      SELECT COUNT(*) AS count from card 
      

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

      【讨论】:

        猜你喜欢
        • 2014-08-26
        • 2015-10-24
        • 1970-01-01
        • 2015-07-15
        • 2020-06-20
        • 2019-08-24
        • 2011-01-26
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多