代码是关于:

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].useridrowss.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。这是给所有物体的。所以用户id,lvl等等。

最佳答案

在创建数据库连接时,您已将多个语句启用为true。这将导致多个resultset
多重属性:真
下面的结果集是对语句的响应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

10-06 14:37