【发布时间】:2017-06-10 08:13:24
【问题描述】:
这非常奇怪。代码有点 500 行检查,但总结起来就是这样
我用的是 lodash,没关系
var data = API.data
_.forEach(data, function (member, index, array) {
var todoArray = []
var todoNum = 0
_.forEach(member.todos, function (spell, index, array) {
.. bla bla bla
todoArray.push([
...stuff,
todoNum
])
todoNum++
})
i.connection.query('INSERT INTO `static_todos` (`key`, `name`, `description`..) VALUES ? ON DUPLICATE KEY UPDATE `name` = VALUES(`name`)...;', [todoArray], function (err, result, fields) {
// Throw stuff
})
})
但是当我进入数据库时,行和todoNum 都被打乱了。我不知道发生了什么..
编辑;当我在第二个 forEach 显示 todoArray 之后打印日志时,它显示正确的数字和正确的顺序。
【问题讨论】:
-
您的架构是什么样的? MySQL 没有义务以任何特定顺序返回内容,除非您有
ORDER BY子句。 -
天哪 .. 对不起,我是个白痴,有这个按钮吗.. 批量插入后数字很好,在我将查询放入循环之前它们很乱.我应该删除问题吗?
-
呵呵,解决问题不丢人。您可以随时删除问题,或提供相关答案以解释解决方案。
标签: mysql node.js loops increment