如何在graphql查询中使用带有变量的%符号

Posted

技术标签:

【中文标题】如何在graphql查询中使用带有变量的%符号【英文标题】:How to use the % sign with a variable in graphql query 【发布时间】:2021-01-06 04:31:16 【问题描述】:

我有一个查询,我想通过查看用户输入的输入变量 LIKE 来过滤结果。

这是我的查询

query MyQuery($domain:String!, $hash:String!) 
  hashtags_hashtags(where: domain: _eq: $domain, limit: 15, offset: 5, order_by: hashtag: asc) 
    hashtag
    responses_languages(where: language: _eq: "english", hashtag: _ilike: %$hash%) 
      hashtag
      response
    
  

因此,当我在 hasura 控制台中测试 _ilike 过滤器时,它仅适用于像这样 ex 编写的刺痛。 “%起司%”。百分号适用于字符串,但当我尝试对变量 $hash 执行相同操作时,它不起作用。如何用变量做 _ilike?当然,我把 $hash 放在 _ilike 之后没有 % 但它没有返回任何东西。只有当我使用常规字符串而不是变量时它才有效。我想如何在 Hasura graph Ql 中编写 _ilike + 变量。哦,我的项目是用 javascript 编写的。

谢谢

【问题讨论】:

【参考方案1】:

查询“正文”不适用于任何类型的操作、没有连接、没有评估、没有字符串文字等。

你必须将ready,prepared,字符串作为变量传递。

variables: 
  domain: "some domain",
  hash: `%$someHashVariable%`


// in query simply 
// ...  hashtag: _ilike: $hash

【讨论】:

非常感谢。我这样做了,但我仍然得到一个错误。超级奇怪,因为这绝对可以工作 100% 是我的错,这是代码中的其他内容。谢谢! 问题是数据是作为承诺加载的,这是一个不同的问题,但是如何异步调用我的查询以便正确加载数据? this.$apollo .query( query: hashQuery, variables: domain: this.selectedDomain, hash:$%this.searchedHash% ) .then(( data : any) => console.log(JSON.stringify(data.hashtags_hashtags)) this.hashtags = data.hashtags_hashtags ) 嗨!我有同样的问题,但我的问题是如何在 REST API URL 参数上使用它?你能检查一下吗?谢谢***.com/questions/69938925/…

以上是关于如何在graphql查询中使用带有变量的%符号的主要内容,如果未能解决你的问题,请参考以下文章

如何在 GraphQL 查询变量中使用数组

如何在带有 gatsby 的 graphql 查询中使用正则表达式

如何使用变量更新graphql中的条目

带有graphql-request的SWR如何在swr中添加变量?

如何在 Android 中发送带有片段的 graphql 查询

如何在 Connect 组件下的 graphql 查询中使用 $filter 变量?