【问题标题】:Nested AND and OR conditions on find methods (not queryBuilder)查找方法上的嵌套 AND 和 OR 条件(不是 queryBuilder)
【发布时间】:2020-07-13 15:19:01
【问题描述】:

前提条件:我正在使用 Typeorm 执行数据库查询,我无法使用 queryBuilder 方法创建此查询,只能使用 find 方法。

我需要翻译如下查询:

SELECT * FROM address where zip = 123 and (street = 'asd' or city = 'New York');

我知道使用通常的queryBuilder 解决方案可能很简单,但在这种特殊情况下我不能使用它。

是否可以仅使用find 方法来实现这些嵌套和/或条件?

【问题讨论】:

标签: javascript node.js typescript typeorm


【解决方案1】:

你能试试这个吗?

Address.find([{
  zip: 123, street: 'asd'
}, {
  zip: 123, city: 'New York'
}]);

如果您只有andor 条件,是的!只能使用find 方法来实现查询。 在typeorm查询中,可以用条件数组表示or

zip = 123 and (street = 'asd' or city = 'New York')

相同
(zip = 123 and street = 'asd') or (zip = 123 and city = 'New York')

【讨论】:

  • 嗯,你是对的。问题是反转 OR 和 AND 条件的位置会产生效率较低的查询。但是,就目前而言,这似乎是独一无二的可能性。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-10-20
  • 2014-09-27
  • 1970-01-01
  • 2015-01-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多