You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Amplify Gen 2:如何实现不区分大小写的字符串过滤?

实现GraphQL中不区分大小写的模糊过滤(类似SQL LIKE)

能不能用contains实现不区分大小写的比较,取决于你使用的GraphQL服务端实现:

  • 如果是Prisma这类ORM驱动的GraphQL服务:直接支持在contains里指定不区分大小写的模式。比如:
query GetUsers {
  users(where: {
    username: { contains: "alice", mode: insensitive }
  }) {
    id
    username
  }
}

这里的mode: insensitive会自动帮你把字段值和搜索参数统一转成相同大小写后匹配,效果等价于SQL的ILIKE。

  • 如果是自定义GraphQL服务(自己写Resolver):可以在Resolver层手动处理大小写统一,比如把前端传入的搜索值转成小写,同时在数据库查询时把目标字段也转成小写后做模糊匹配。以PostgreSQL为例,Resolver里可以生成类似LOWER(username) LIKE '%' || $1 || '%'的SQL语句,其中$1是转成小写的搜索参数。

如果你的GraphQL服务不支持上述方式,也不用换方向,而是可以:

  • 在服务端新增自定义过滤字段,比如containsInsensitive,专门处理不区分大小写的模糊查询逻辑
  • 避免前端硬转大小写后匹配(除非字段本身是大小写无关的),因为这种方式依赖前端处理,容易出问题

内容的提问来源于stack exchange,提问作者Michael Berk

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 20:22:02