首页 > 解决方案 > 执行“SELECT COUNT”查询后,无法从 RowDataPacket 访问“COUNT(id)”

问题描述

我想访问包含实际计数元素数量的变量,但我不知道如何。

    sql = "SELECT COUNT(id) FROM users WHERE username='" + req.body.username + "' AND password='" + req.body.password + "';";
    con.query(sql, function (err, result) {
    if (err) throw err;
    })

result[ RowDataPacket { 'COUNT(id)': 0 } ]; 我无法使用语法 result.COUNT(id) 访问数据,因为我收到错误消息:ReferenceError: id is not defined

标签: javascriptmysqlnode.js

解决方案


在查询中使用别名count和更好的抽象使用模板文字

 sql = `SELECT COUNT(id) as count FROM users WHERE username=${req.body.username}  AND password=${req.body.password}`;
    con.query(sql, function (err, result) {
        if (err) throw err;
    })

对于 [ RowDataPacket { 'total': 0 } ] ,试试这个

     sql = `SELECT COUNT(id) as count FROM users WHERE username=${req.body.username}  AND password=${req.body.password}`;
            con.query(sql, function (err, result) {
                if (err) throw err;
                  else{
let results=JSON.parse(JSON.stringify(result)) // gives you an js object array
    } })

推荐阅读