【问题标题】:how to delete value from database if it is not present in the array如果数组中不存在值,如何从数据库中删除值
【发布时间】:2018-01-05 19:48:56
【问题描述】:
db.query('DELETE FROM position WHERE position <> ALL ($1)',[req.body.positionDetails.position],function(err,data){
  if (err) return callback(new Error(err));
  console.log('deleted')                            
})

这里我想从数据库中删除数组中不存在的position 值。

数组是这样的:

{
   "positionDetails":[
      {
         "position":"developer",
         "fullTime":"true",
         "unit":"er",
         "office_country":"india",
         "office_city":"gyu",
         "technology":"ghj",
         "framework":"fgb",
         "position_start":"1-2-2012",
         "position_end":"3-12-2020",
         "company_id":"1",
         "monthly_target":"200",
         "wage":"sdfg"
      },
      {
         "position":"manager",
         "fullTime":"true",
         "unit":"er",
         "office_country":"india",
         "office_city":"gyu",
         "technology":"ghj",
         "framework":"fgb",
         "position_start":"1-2-2012",
         "position_end":"3-12-2020",
         "company_id":"1",
         "monthly_target":"200",
         "wage":"sdfg"
      }
   ]
}

但它正在从数据库中删除所有值如何解决这个问题??

【问题讨论】:

    标签: node.js postgresql postman


    【解决方案1】:
    var anyvalue=""
    data.positionDetails.position.map((item,i)=>{
        if(item == DELETE_ITEM) {
            anyvalue += item+","
        }     
    })
    

    注意:您必须使用修剪或任何其他功能从 anyvalue 中删除最后一个 ,

    db.query('DELETE FROM position WHERE position IN (anyvalue),[data.positionDetails.position],function(err,data){
      if (err) return callback(new Error(err));
      console.log('deleted')                            
    })
    

    由于 postionDetail 具有位置字段,它将删除特定的位置对象。

    【讨论】:

    • 如果数组包含多个值??
    • 我正在更新我的答案,只需检查一次
    • 在您的回答中,您正在检查“=”表示数组中存在的数据被删除对吗??
    猜你喜欢
    • 2023-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-12
    • 2018-10-14
    • 2020-08-03
    • 2021-01-06
    • 2017-04-05
    相关资源
    最近更新 更多