如何在 sequelize Node js 中为“A or (B and c)”编写条件

how to write condition for " A or (B and c) " in sequelize Node js

如何为“A 或(B 和 c)”编写 where 条件

当前条件为:

    Post.findAll({
  where: {
    Id: {
      [Op.or]: [A, B]
    }
  }
});

但我需要其中包含“和”的 OR 条件

喜欢

Post.findAll({
      where: {
        Id: {
          [Op.or]: [A, (B [Op.and] {name : C}) // this is wrong query, what is the right way ? ]
        }
      }
    });

mysql 中的查询类似于

select * 来自 table where id ='A' or (id='B' and name='C');

上面的Sql是错误的,但条件是我需要的。任何帮助。

因为 or 是 SQL 查询中的顶级运算符,您还需要在 where 选项中将其指示为顶级属性并使用 Op.and (或者只是一个带有几个道具的对象)在第二个条件下:

Post.findAll({
      where: {
          [Op.or]: [{
            Id: 'A'
          }, {
           Id: 'B',
           Name: 'C'
          }]
      }
    });