Maison > Questions et réponses > le corps du texte
J'essaie de pousser les résultats d'une requête SQL dans un tableau. Cependant, cela ne semble pas fonctionner. Je ne trouve pas de solution en ligne. Si quelqu'un peut m'aider à résoudre ce problème, je lui en serais très reconnaissant.
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
Vous pouvez essayer d'obtenir des données de MySql DB en utilisant une seule requête
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)
Cela élimine les méthodes asynchrones internes dans le code js.