我无法弄清楚如何从回调函数中的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) {
});
我何时使用另一个而另一个?
答案 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