使用Hasura GraphQL通过手机号查询指定日期间的数据
GraphQL查询错误修正
你当前编写的查询存在两处语法问题,会导致请求失败:
where条件结构错误:过滤条件块内不能并列放置多个独立对象,同层级的多个过滤条件默认按逻辑与(AND)拼接,需要放在同一个对象结构下。- 手机号等值匹配写法错误:你当前使用的
_gte、_lte是范围比较操作符,字段等值匹配需要使用_eq操作符,直接写phone_number : $phoneNumber不符合语法规则。
修正后可直接运行的代码
query MyQuerylT($dateFrom : timestamp!, $dateTo : timestamp!, $phoneNumber : String! ) { tracking( where: { place_time: { _gte: $dateFrom, _lte: $dateTo }, phone_number: { _eq: $phoneNumber } } ){ phone_number place_time name address } }
调整说明
- 合并了
place_time字段的上下限范围条件,不需要拆成两个独立的过滤项 - 为手机号匹配补充了
_eq等值操作符,适配你当前使用的GraphQL引擎(从_gte/_lte的命名判断为Hasura引擎) - 原有三个入参的类型、非空标记配置正确,无需修改
内容的提问来源于stack exchange,提问作者eboi
相关产品推荐
相关产品推荐

