【问题标题】:How to use the % sign with a variable in graphql query如何在graphql查询中使用带有变量的%符号
【发布时间】: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 编写的。

谢谢

【问题讨论】:

    标签: javascript graphql hasura


    【解决方案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 参数上使用它?你能检查一下吗?谢谢stackoverflow.com/questions/69938925/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-04-11
    • 2018-01-12
    • 2019-01-28
    • 2020-01-22
    • 2021-02-28
    • 2017-02-21
    • 2020-03-12
    相关资源
    最近更新 更多