Heim > Fragen und Antworten > Hauptteil
Ich versuche, die Ergebnisse einer SQL-Abfrage in ein Array zu übertragen. Allerdings scheint es nicht zu funktionieren. Ich kann online keine Lösung finden. Wenn mir jemand bei der Lösung dieses Problems helfen kann, wäre ich sehr dankbar.
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 }); } }); } }); } });
P粉0468781972024-04-07 12:25:01
您可以尝试使用单个查询从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 代码中的内部异步方法。