【发布时间】:2020-10-08 20:33:17
【问题描述】:
我正在使用 react 和 express 进行一个辅助项目。
我想在列表中发送我的数据库中特定项目的 7 天的丢弃数据以供搜索。
所以我写了这样的代码。
使用 date(droped_at) = date(date_add(now(),interval -*${i}* DAY) 和 for 循环。
for (var i = 1; i < 8; i++) {
var resultSql1 = `SELECT T.channel_name, T.channel_number, T.VALUE, T.num from(SELECT itemId, channel_name, channel_number, COUNT(*) AS VALUE, ROW_NUMBER() over(order by value DESC) NUM FROM item_drop_exception WHERE itemId = (SELECT itemId FROM item_exception WHERE itemid = '${id}') AND date(droped_at) = date(date_add(now(),interval -${i} DAY)) GROUP BY channel_name, channel_number) T WHERE T.NUM<=3 ORDER BY T.num ORDER BY T.NUM`
db.query(resultSql1, id, (err, data) => {
if (!err) {
list1.push(data);
if (list1.length == 7) {
res.send(list1);
}
}
else {
res.send(err);
}
})
}
但它不起作用。
我知道方法不对。
我认为在查询结果进来之前下一个循环正在进行,但我不知道该怎么做。
这样引入 7 天的数据是否正确?
我想在所有结果都追加完成后将数据发送到前面。
这并不容易,因为我是自学成才的,我需要帮助。
【问题讨论】:
标签: javascript mysql node.js reactjs express