【问题标题】:Using sequelize, how do you use an OR operator with the where criteria?使用 sequelize,如何将 OR 运算符与 where 条件一起使用?
【发布时间】:2014-08-21 11:59:39
【问题描述】:

从之前的SO discussion 中,我能够使用两个条件更新多个 sequelize 实例。

谁能解释我如何使用逻辑 OR 运算符而不是 AND 运算符来修改 sequelize .update 方法?下面是使用 AND 的 sequelize .update 方法,用于更新的两个条件。

  global.db.Task.update(
    {Desc: 'New Upate'},       //set attribute 
    {cd: 'match', Desc: null}  //where criteria 
  ).success(function(affectedRows) { ... });

这将读取如下 SQL 语句:

UPDATE "Task" SET "Desc"='New Update' WHERE "Cd"='match' AND "Desc" IS NULL

【问题讨论】:

    标签: mysql node.js postgresql express sequelize.js


    【解决方案1】:

    试试

    global.db.Task.update(
        {Desc: 'New Upate'},       //set attribute 
        ["cd = ? OR Desc = ?", 'match', null]  //where criteria 
      ).success(function(affectedRows) { ... });
    

    更新(来自 Miller):在 set 属性行的末尾添加了一个我错过的逗号。

    【讨论】:

    • 您所做的这些更改是否被视为原始 SQL?
    【解决方案2】:

    global.db.Task.update({update_data}, {where: {where_data}}).then(function (affectedrows) {})

     global.db.Task.update({Desc: 'New Upate'},  where: {$or: [{cd: "match"}, {Desc: null}]}).success(function(affectedRows) { ... });
    

    【讨论】:

      猜你喜欢
      • 2016-06-28
      • 2022-11-21
      • 2020-04-22
      • 1970-01-01
      • 2022-11-17
      • 1970-01-01
      • 1970-01-01
      • 2013-04-21
      • 1970-01-01
      相关资源
      最近更新 更多