gpt4 book ai didi

javascript - 如何使用express.js在另一个MySQL查询中执行mySQL查询

转载 作者:行者123 更新时间:2023-11-29 16:29:41 25 4
gpt4 key购买 nike

当我们想要执行一个从另一个查询获取输出的查询时,我们遇到了问题。

connection.query(`SELECT * from Database.table1`, function (err, rows, fields) {


for (var item of rows) {
allcounts += item.count
number = item.number
console.log(allcounts)
console.log(number)


connection.query(`DELETE from Database.table2 where numbers = ${number}`, function (err, rows, fields) {

console.log("delete successfull")


})
console.log("Step One finished !")
}


})

它应该工作的方式是,第一个查询中的行返回两个 JSON 对象。每个对象代表一个特定的产品,具有计数(count)和产品编号(number)。该产品应在数据库的另一个表中删除。

您可以看到我们想要循环第一个语句的输出(行)并使用此输出(行)执行另一个语句。这是可行的,但 Express 正在以错误的方向执行代码......

输出如下:

0.89
12345
Step One finished!
2.28
32598
Step One finished!
delete successfull
delete successfull

它向我们显示了数字并正确添加了计数!奇怪的是,这两个查询都是在添加两个计数并显示数字之后执行的......

我们尝试了多种解决方案,但没有一个适合我们。

如果有人能尽快帮助我们,那就太好了:)

最佳答案

You can try with 2 solutions other than promises

1) using anonymous function which blocks the for loop for next iteration untill the query is executed

connection.query(`SELECT * from Database.table1`, function (err, rows, fields) {


for (var item of rows) {

(function (item){


allcounts += item.count
number = item.number
console.log(allcounts)
console.log(number)


connection.query(`DELETE from Database.table2 where numbers = ${number}`, function (err, rows, fields) {

console.log("delete successfull")


})
console.log("Step One finished !")
})(item);


}


})


2) using IN in where clause


at takes the output from another query.

connection.query(`SELECT * from Database.table1`, function (err, rows, fields) {


let numbers = [];

for (var item of rows) {

numbers.push(item.number);
}


connection.query(`DELETE from Database.table2 where numbers IN ("+numbers+")`, function (err, rows, fields) {
connection.release();
console.log("delete successfull")


})
console.log("Step One finished !")



})

关于javascript - 如何使用express.js在另一个MySQL查询中执行mySQL查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54010984/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com