首页  >  问答  >  正文

创建动态的 'andWhere' 查询在 TypeORM 中

<p>我正在尝试动态地向查询中添加一个 where 子句,以实现对 HTML 表格的筛选。我向我的 API 发送一个对象,其中包含筛选的键值对。它看起来像下面这样:</p> <pre class="brush:php;toolbar:false;">{Location: 'Seattle', Status: 'Active'}</pre> <p>我向查询添加每个筛选条件的方式如下:</p> <pre class="brush:php;toolbar:false;">const query = this.tableRepository.createQueryBuilder('myTable') .where('myTable.id = :id', {table_id}) var ind=1 for (let key in myObj){ var varname = 'searchVal' + String(ind) const searchVal = myObj[key] query.andWhere(`row_value.row_data->> '${key}' ILIKE :${varname}`, {varname: `%{searchVal%`}) }</pre> <p>我一直遇到的错误是以下错误:ERROR [ExceptionsHandler] syntax error at or near ":" QueryFailedError: syntax error at or near ":"。我确定错误是由最后的 {varname: '%{searchVal}%'} 触发的,但我不知道如何更改它。</p>
P粉334721359P粉334721359444 天前475

全部回复(1)我来回复

  • P粉585541766

    P粉5855417662023-08-04 09:54:32

    没关系,我弄明白了 - 我刚才有点傻。

    我只需要将最后的{varname: '%{searchVal}%'}更改为{[varname]: '%{searchVal}%'}即可。

    回复
    0
  • 取消回复