【问题标题】:Special characters in hasura graphql querieshasura graphql 查询中的特殊字符
【发布时间】:2021-08-19 14:31:08
【问题描述】:

我一直在使用 hasura 和 next.js 在前端 (SSR) 中呈现 html。我有姿势数据库,并通过 useQuery 钩子使用 grapql 查询来获取数据。 我的简单查询会是这样的

query News_60($str) {
    news: news_aggregate(where: where: { text:{_ilike:$str}) {
      aggregate {
        count
      }
    }
  } 

上面一个给了我匹配str的新闻计数。 str 的示例将是“%game%”(用户在搜索框中键入“game”)。它完美地工作。它使新闻具有“游戏”作为文本字段的一部分。如果我通过“%game%of%”(用户在搜索框中输入“game of”)。我得到了带有“game”和“of”的结果。例如:权力的游戏。这对我来说完全没问题。现在,问题是当用户在搜索框中输入“游戏类型”时。我希望 hasura 选择带有“game#type”或“game_type”或“游戏类型”的文本的结果。因此,它应该选择所有具有“游戏”和“类型”字的结果,其中包含任何特殊字符或空格。我试过“%game%type%”。但它会选择包含介于两者之间的任何字母的文本,但是,我只想要介于两者之间的特殊字符。
有没有办法。 请帮帮我。

hasura 中是否有特殊字符处理?

【问题讨论】:

    标签: reactjs postgresql graphql hasura


    【解决方案1】:

    您可以使用 _similar 运算符和 SQL 标准的正则表达式来实现。

    {
      "str": "%game( |#|\\_)type%"
    }
    

    这匹配两个单词之间的任何 空格#_ 字符!

    一个警告可能是区分大小写。解决此问题的一种方法是将您的列更改为 citext 类型

    【讨论】:

    • 啊哈。我会试试这个。
    • 没问题!爸爸
    猜你喜欢
    • 2016-04-22
    • 2020-01-23
    • 2013-12-15
    • 2018-01-27
    • 2011-05-30
    • 2020-07-02
    • 2011-10-08
    • 2021-07-02
    • 2021-12-19
    相关资源
    最近更新 更多