使用node.js和mysql调用rowdatapacket中的对象

egmofgnx  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(507)

代码是关于:

con.query(`SET @row_num = 0; SELECT @row_num := @row_num + 1 AS row_number, userid, username, lvl FROM users ORDER BY lvl + 0 DESC`, async (err, rowss) => {
    if(err) throw err;
        console.log(rowss[0].userid);
    });

我尝试的是:
我试着用 rowss[0].userid 以及 rowss.userid . 但他想为我工作。但是,当我使用 rowss 我自己得到以下输出:

[ OkPacket {
fieldCount: 0,
affectedRows: 0,
insertId: 0,
serverStatus: 10,
warningCount: 0,
message: '',
protocol41: true,
changedRows: 0 },
[ RowDataPacket {
  row_number: 1,
  userid: '123',
  username: 'test1#5245',
  lvl: '113' },
RowDataPacket {
  row_number: 2,
  userid: '456',
  username: 'test2#8272',
  lvl: '112' },
RowDataPacket {
  row_number: 3,
  userid: '789',
  username: 'test3#5873',
  lvl: '91' },
RowDataPacket {
  row_number: 4,
  userid: '012',
  username: 'test4#0581',
  lvl: '78' }.................

我想要的是:
调用rowdatapacket中的对象并将其记录到console.log中。所以我想要的基本上是当我

console.log(rowss[0].username + ' - ' + rowss[0].lvl);
console.log(rowss[3].username + ' - ' + rowss[3].lvl);

输出结果是:

test1#5245 - 113 (Since this is the first row in the array).
test4#0581 - 78 (Since this is the 4th row).

我的问题是:
每当我尝试 console.log(rowss[0].username); 例如,我得到 undefined . 这适用于所有对象。所以userid,lvl,等等。

mpbci0fu

mpbci0fu1#

在创建db连接时,已将多个语句启用为true。这将导致多个ressultset
多重陈述:真
下面的结果集是对station的响应 SET @row_num = 0; ```
OkPacket {
fieldCount: 0,
affectedRows: 0,
insertId: 0,
serverStatus: 10,
warningCount: 0,
message: '',
protocol41: true,
changedRows: 0 }

select查询的数据结果位于数组的第二个位置
选择查询数据可以访问如下

rowss[1][0].row_number
rowss[1][0].userid
rowss[1][0].lvl

相关问题