首页 > 解决方案 > 如何在graphql查询中使用带有变量的%符号

问题描述

我有一个查询,我想通过查看用户将键入的输入变量是什么来过滤结果。

这是我的查询

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 编写的。

谢谢

标签: javascriptgraphqlhasura

解决方案


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

您必须将准备好的、提前准备好的字符串作为变量传递。

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

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

推荐阅读