是否有方法循环mysql(或语句)以获取express.js中的多行
我有一个json请求,格式如下:是否有方法循环mysql(或语句)以获取express.js中的多行,mysql,node.js,api,express,Mysql,Node.js,Api,Express,我有一个json请求,格式如下: { "claimNo":["5454545","4554454","45884"] } 索赔单可以保存任意数量的物品(不受限制)。我想获取这些值并编写一个查询,从mysql数据库中获取数据,其中claimNo=请求中的值。 样本响应: "claims": [ { "claimNo": "4554454", "ClaimCause": "gjgiukhknl", "ClaimAmount": 45550,
{
"claimNo":["5454545","4554454","45884"]
}
索赔单可以保存任意数量的物品(不受限制)。我想获取这些值并编写一个查询,从mysql数据库中获取数据,其中claimNo=请求中的值。
样本响应:
"claims": [
{
"claimNo": "4554454",
"ClaimCause": "gjgiukhknl",
"ClaimAmount": 45550,
},
{
"claimNo": "5454545",
"ClaimCause": "fdfdfdfdf",
"ClaimAmount": 0,
}
]
我可以成功地循环通过请求并在终端上显示,甚至可以使用多个or插入db,但这只适用于有限的数组长度
req.body.claimNo.forEach(element => {
// console.log(element)
let sql = 'SELECT * FROM claims WHERE claimNo = ?'
connection.query(sql,element,(err, rows, fields) => {
if(!err){
// return res.json({
// success:true,
// errorCode:"",
// errorDescription:"",
// claims:rows
// })
console.log(rows)
}else
console.log(err)
} )
})
您不需要为每个
claimNo
发送单独的请求。您可以在操作符中选择。以下方面应起作用:
const claimsNo = claims.map(claim => claim.claimNo);
const sql = 'SELECT & FROM claims where claimNo IN (?)';
connection.query(sql, [ tableName, claimsNo ], (err, rows, fields) =>{
...
});
如果我正确理解了您的问题,那么您正在寻找一种方法来查询MySQL数据库中的多个claimNo
条目,并将结果作为单个结果返回
使用MySQL操作符,您可以将查询编写为select*from claimNo in(?)
let sql='select*(从索赔中选择,(?);
设claimNos=req.body.claimNo;
查询(sql,claimNos,(err,rows,fields)=>{
如果(!err){
//返回res.json({
//成功:没错,
//错误代码:“”,
//错误描述:“”,
//索赔:行
// })
console.log(行)
}否则
console.log(错误)
})