TypeORM activeRecord样式查询“哪里(a和b)或(c和d)”?

时间:2019-10-23 14:24:32

标签: sql typeorm typeorm-activerecord

我想使用TypeORM来运行

之类的查询
... WHERE (a=1 && b=true) OR (a=2 && b=false)

我在QueryBuilder style中看到了很多有关此操作的参考,但是我需要知道如何使用ActiveRecord样式执行此操作。

2 个答案:

答案 0 :(得分:1)

您可以通过为where:属性提供对象数组来实现此目的:

Item.find({
    where: [
        { user: { id: userId }, confirmed: "true" },
        { user: { id: userId }, status: "active" }
    ]
});

上面的查询将查找属于用户的项目,

  • 用户匹配用户ID并且已确认,或者...
  • 用户与用户ID匹配且处于活动状态

答案 1 :(得分:0)

我不了解TypeORM,但是我在ruby上的Rail Active查询方法上发现了这一点:

https://guides.rubyonrails.org/active_record_querying.html#conditions

raw code: ...where("orders_count = ? AND locked = ?", params[:orders], false)
Example Code: ...where(["(a= ? and b= ?) Or (a=? and b=?)", 1, true, 2, false])