首页 > 解决方案 > typeorm raw sql查询是否支持IN子句

问题描述

我知道我们可以通过 querybuilder 使用 IN 子句:

await manager.getRepository(ReportEntity).createQueryBuilder()
                        .select('id')
                        .where('job_id IN (:...ids)',{ids:query_data[i].array_agg})
                        .getRawAndEntities()

是否可以在原始 sql 查询中做同样的事情?如果是,如何在原始查询中将参数传递给 IN 子句?

如果我想这样做:

await manager.query("select id from report where job_id IN (:...ids)",[{ids:['d8add1db-41fe-4e2d-b287-037fc22f1d29','a07497b7-1a94-482a-988c-1e2dcf6059c6']}])

标签: postgresqltypeorm

解决方案


await manager.query(
    'SELECT id from report where job_id = ANY($1)',
    [['d8add1db-41fe-4e2d-b287-037fc22f1d29', 'a07497b7-1a94-482a-988c-1e2dcf6059c6']]
)

推荐阅读