根据条件更新续集列

Posted

技术标签:

【中文标题】根据条件更新续集列【英文标题】:Update a sequlize column based on condition 【发布时间】:2022-01-23 00:23:27 【问题描述】:

所以我想根据这里的条件更新我的表格列是代码。

await CourseSubscriber.update( 
      completion_percentage: completion_percentage,
      completed_on: **, // over here i want to check if completion_percentage<100 then update this one
    , 
         where: 
           course_id: course_id,
           academy_id,
           user_id: user_id
    
  )

【问题讨论】:

【参考方案1】:

一种方法是根据完成百分比添加 2 个更新查询

if(completion_percentage < 100)
   await CourseSubscriber.update( 
      completion_percentage: completion_percentage,
      completed_on: null,
     , 
        where: 
          course_id: course_id,
          academy_id,
          user_id: user_id
     
   )
 else 
   await CourseSubscriber.update( 
      completion_percentage: completion_percentage
     , 
        where: 
          course_id: course_id,
          academy_id,
          user_id: user_id
     
   )

【讨论】:

【参考方案2】:

这是另一个解决方案

        const payload= 
            completion_percentage: completion_percentage,
        
        if(completion_percentage < 100)
            payload.completed_on = null
        
        await CourseSubscriber.update(payload, 
            where: 
                course_id: course_id,
                academy_id,
                user_id: user_id
            
        )

这样我们只对数据库进行一次查询。

【讨论】:

以上是关于根据条件更新续集列的主要内容,如果未能解决你的问题,请参考以下文章

在 where 条件下用 " 续集换行列

续集你正在使用sql安全更新错误

字段列表中的未知列续集

续集更新或创建包含的关联

将迁移更改列续集为 FK,然后撤消失败

续集更新交易