【问题标题】:How does where(property IN array) work in typeorm query builder?where(property IN array) 在 typeorm 查询生成器中如何工作?
【发布时间】:2021-09-25 00:48:17
【问题描述】:

我需要使用查询生成器通过 id 数组过滤实体的 id。

这是代码:

await this._productRepo
.createQueryBuilder('Product')
.where('Product.id IN (:...ids)', { ids: [1, 2, 3, 4] })

这是这个查询生成的sql:

SELECT [*FIELDS*] WHERE ( `Product`.`id` IN ? ) AND ( `Product`.`deletedAt` IS NULL )

这是一个代码示例,我在 typeorm 的文档中找到,我不明白为什么会有 ?在 sql 中,而不是 id 列表。

我需要查询生成器,因为下一步是过滤连接表的 id,所以我不能使用存储库方法。

【问题讨论】:

    标签: typescript nestjs typeorm query-builder


    【解决方案1】:

    解决了。

    上面的查询生成器语法有效。 问题出在我的回购代码的另一部分。

    如果有人似乎有类似的问题,请检查您的所有代码,getSql() 报告的事实:

    WHERE ( `field`.`property` IN ? )
    

    是“正常的”,我认为是因为 typeorm 的开发人员不想打印所有数组的值。

    【讨论】:

      猜你喜欢
      • 2013-03-23
      • 2020-07-27
      • 2015-10-04
      • 1970-01-01
      • 2012-05-18
      • 2021-08-10
      • 1970-01-01
      • 2023-01-20
      • 2023-01-20
      相关资源
      最近更新 更多