postgresql 当字符串上有'+'时,JSON中带有_cast的graphql查询不起作用

fdbelqdn  于 2023-05-06  发布在  PostgreSQL
关注(0)|答案(1)|浏览(108)

我正在使用Hasura GraphQL查询存储在JSONB列中的数据。我将键值对作为搜索参数发送,查询应该返回与搜索条件匹配的数据。但是,我遇到了一个问题,当搜索包含“+”字符的字符串时,查询不返回任何结果,即使该字符串存在于数据库中。你能帮我解决这个问题吗?

query myQuery {
  deal_search( where: {
    _or: {
      fields: {
        _cast: {
          String: {
            _iregex: "\"payment_pix_code\": \"00020126360014BR+B1\""
          }
        }
      }
    }
  }
) {
    name
}

jsonb in column fields
我尝试过使用其他操作符,如_contains和_ilike,但任何操作都有效

2guxujil

2guxujil1#

“+”在正则表达式中有意义,你需要转义它。在搜索表达式中使用\+,即:

_iregex: "\"payment_pix_code\": \"00020126360014BR\\+B1\""

相关问题