首页 > 解决方案 > 在 mysql 查询中获取模式信息

问题描述

我在 mysql 数据库中有一个表,它有三个记录。该表有 11 列。我正在使用mysql2进行查询;我的查询是:

let mylist=[];
     mylist = await  pool.query( "SELECT * FROM mytable WHERE username = ?", usrname);

我没有得到一个包含三个对象的数组,而是得到一个里面有两个数组的数组。在第一个数组中有我想要获取的三个记录。但在第二个数组中,我得到如下结果:

1: Array(11)
0:
characterSet: 63
columnLength: 8
columnType: 3
decimals: 0
encoding: "binary"
flags: 16903
name: "id"
_buf: {type: "Buffer", data: Array(886)}
_catalogLength: 3
_catalogStart: 10
_clientEncoding: "utf8"
_orgNameLength: 2
_orgNameStart: 37
_orgTableLength: 7
_orgTableStart: 26
_schemaLength: 3
_schemaStart: 14
_tableLength: 7
_tableStart: 18
__proto__: Object
1:
characterSet: 224
columnLength: 56
columnType: 253
decimals: 0
encoding: "utf8"
flags: 20485
name: "mnm"
_buf: {type: "Buffer", data: Array(886)}
_catalogLength: 3
_catalogStart: 57
_clientEncoding: "utf8"
_orgNameLength: 3
_orgNameStart: 85
_orgTableLength: 7
_orgTableStart: 73
_schemaLength: 3
_schemaStart: 61
_tableLength: 7
_tableStart: 65
__proto__: Object
2:
characterSet: 224
columnLength: 48
columnType: 253
decimals: 0
encoding: "utf8"
flags: 20489
etc...
etc....

我想知道我在查询结果中获得第二个数组对象的原因,其中包含我不想要的所有列的详细信息。

标签: node.jsmysql2

解决方案


我发现这是node -mysql2的问题。解决方法是(如问题讨论中给出的)查询

const [rows] = await conn.query(sql);

或者像这样

db.query(query).then(function(response) {
    var data = response[0];
    // use data
});

推荐阅读