我试图将SQL查询的结果推送到数组中。然而,它似乎不起作用。我在网上找不到解决办法。如果有人能帮我,我会非常感激的。
let data = [];
connection.query("SELECT DISTINCT referer FROM publisher", (error, results) => {
if (error) {
console.log(error);
} else {
results.forEach(async (result) => {
let referer = result.referer;
let today = new Date();
for (let i = 0; i < 24; i++) {
let hour = i;
let start = new Date(today);
start.setHours(hour, 0, 0, 0);
let end = new Date(today);
end.setHours(hour, 59, 59, 999);
connection.query("SELECT COUNT(*) AS count FROM publisher WHERE referer = ? AND first_seen >= ? AND first_seen <= ?", [referer, start, end], (error, results) => {
if (error) {
console.log(error);
} else {
let count = results[0].count;
data.push({
referer: referer,
hour: hour,
count: count
});
}
});
}
});
}
});发布于 2022-09-29 08:34:28
您可以尝试使用单个查询从MySql DB获取数据。
select referer, hour(first_seen) h, count(*) n
from publisher
where date(first_seen) = curdate()
group by referer, hour(first_seen)
order by referer, hour(first_seen)这样就消除了js代码中的内部异步方法。
https://stackoverflow.com/questions/73891887
复制相似问题