无法使用 SQL 从数据库中获取特定信息
Cannot get specific information from a database using SQL
这是我第一次在 'connection.query' 上发出两个 SQL 请求,有些地方肯定不对,首先是我的代码:
pool.getConnection(function (err, connection) {
if (err) throw err;
let sql = `SELECT * FROM custom_prefix WHERE guild_id = '12345678912345678'; SELECT * FROM cache_size`;
connection.query(sql, async function (err, result) {
if (err) throw err;
console.log(result);
connection.release();
});
});
到目前为止一切正常,输出将是:
[
[
RowDataPacket {
prefix: '!',
guild_id: 12345678912345678,
guild_name: 'server name',
changed_by_id: 12345678912345678,
changed_by_name: 'username#1234',
changed_date: 2022-04-13T19:50:33.000Z
}
],
[ RowDataPacket { guilds: 4, users: 39 } ]
]
如果我将 console.log(result)
更改为 console.log(result[1])
,输出将是:
[ RowDataPacket { guilds: 4, users: 39 } ]
所以一切都像我期望的那样工作,但是如果我只想要 result[1]
中的特定值,比如说 guilds
,那么我会做 console.log(result[1].guilds)
。
我会这样做,因为我有一些其他文件,我在其中检查数据库中的某些内容并使用 result[0].something
方法,它在那里工作得非常好。但是一旦我使用两个 SELECT * FROM
请求,它就不会。
所以如果我尝试 console.log result[1].guilds
输出将是:
undefined
这对我来说毫无意义,因为我经常使用这种方法并且效果很好。
但是这里说 undefined
.
所以我不知道如何在使用两个时从一个结果中获取特定值,希望这里有人可以帮助我。
谢谢。
通常,查询结果是一个行数组。但是,由于您执行了 多个 查询,因此 result
是查询结果的数组;每个结果都是每个查询返回的行数组。因此,您比只有一个查询的场景多了一层嵌套。
您正在尝试获取 .guilds
的数组,该数组没有这样的 属性。你想要这个:
result[1][0].guilds
这是我第一次在 'connection.query' 上发出两个 SQL 请求,有些地方肯定不对,首先是我的代码:
pool.getConnection(function (err, connection) {
if (err) throw err;
let sql = `SELECT * FROM custom_prefix WHERE guild_id = '12345678912345678'; SELECT * FROM cache_size`;
connection.query(sql, async function (err, result) {
if (err) throw err;
console.log(result);
connection.release();
});
});
到目前为止一切正常,输出将是:
[
[
RowDataPacket {
prefix: '!',
guild_id: 12345678912345678,
guild_name: 'server name',
changed_by_id: 12345678912345678,
changed_by_name: 'username#1234',
changed_date: 2022-04-13T19:50:33.000Z
}
],
[ RowDataPacket { guilds: 4, users: 39 } ]
]
如果我将 console.log(result)
更改为 console.log(result[1])
,输出将是:
[ RowDataPacket { guilds: 4, users: 39 } ]
所以一切都像我期望的那样工作,但是如果我只想要 result[1]
中的特定值,比如说 guilds
,那么我会做 console.log(result[1].guilds)
。
我会这样做,因为我有一些其他文件,我在其中检查数据库中的某些内容并使用 result[0].something
方法,它在那里工作得非常好。但是一旦我使用两个 SELECT * FROM
请求,它就不会。
所以如果我尝试 console.log result[1].guilds
输出将是:
undefined
这对我来说毫无意义,因为我经常使用这种方法并且效果很好。
但是这里说 undefined
.
所以我不知道如何在使用两个时从一个结果中获取特定值,希望这里有人可以帮助我。 谢谢。
通常,查询结果是一个行数组。但是,由于您执行了 多个 查询,因此 result
是查询结果的数组;每个结果都是每个查询返回的行数组。因此,您比只有一个查询的场景多了一层嵌套。
您正在尝试获取 .guilds
的数组,该数组没有这样的 属性。你想要这个:
result[1][0].guilds