提问人:Sam 提问时间:11/15/2023 最后编辑:BarmarSam 更新时间:11/16/2023 访问量:27
需要 Explenation:奇怪的 MySQL2 行为:查询结果省略 1 行,除非
Explenation needed: Weird MySQL2 Behavior: Query Result omits 1 row, unless
问:
在查询 SELECT 到 MySQLDB 时,结果中奇怪地省略了 1 行。在对错误进行暴力破解后,我发现,只有在另一个SELECT查询函数的回调中执行查询时,才会返回完整结果。
完整结果:
getQueueTime(() => {
getOrders();
})
省略 1 行:getOrders();
现在我完全不明白为什么会发生这种情况,因为只使用了 SELECT 查询,我将不胜感激。以下函数的简化版本:
function getQueueTime(callback) {
const sql = "SELECT SUM(queue_time) AS total_queue_time FROM Orders WHERE order_status = 'Processing'"
pool.getConnection((err, connection) => {
connection.query(sql, (error, results) => {
connection.release();
let queue_time = results[0].total_queue_time;
callback(queue_time);
});
});
}
function getOrders(status) {
return new Promise((resolve, reject) => {
const sql = "SELECT * FROM Orders AS o JOIN OrderItems AS oi ON o.order_id = oi.order_id JOIN Food AS f on oi.food_id = f.food_id WHERE o.order_status = 'Processing'";
connection.getConnection((err, connection) => {
connection.query(sql, (error, results) => {
console.log(results);
connection.release();
resolve(results); //Here The results I´m talking about
//rest of logic
})
})
})
}
我尝试简单地在同一函数中使用另一个查询来复制它,并且还尝试仅使用空回调函数,两者都不占上风。
答: 暂无答案
评论
status
getOrders()
getOrders()
await
.then()