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

如何在Prisma中实现多字段指定值与空值筛选

解决Prisma查询中包含NULL值的筛选问题

你遇到的问题确实是Prisma的in操作符会自动忽略null值,直接把null放进in数组里不会生效。要实现name等于"John"或NULL,且age等于22或NULL的筛选,需要把每个字段的条件拆成OR组合,再用AND关联两个字段的要求:

const results = await prisma.myModel.findMany({
  where: {
    AND: [
      // name满足:是"John" 或者 为NULL
      {
        OR: [
          { name: "John" },
          { name: { isNull: true } }
        ]
      },
      // age满足:是22 或者 为NULL
      {
        OR: [
          { age: 22 },
          { age: { isNull: true } }
        ]
      }
    ]
  },
});

逻辑说明

这个查询会匹配以下所有组合的记录:

  • name="John" 且 age=22
  • name="John" 且 age=NULL
  • name=NULL 且 age=22
  • name=NULL 且 age=NULL

如果觉得{ name: null }的写法更直观,也可以替换掉{ name: { isNull: true } },两者在Prisma中效果一致。

内容的提问来源于stack exchange,提问作者André Mendes

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 08:17:25