如何在Prisma中使用where in?

Ιησ*_*αυή 5 prisma prisma2

我在该搜索用户下方使用两列进行了查询。但它似乎无法正常工作,我假设它正在查询where每列中的子句而不是两列中的子句。

有没有办法可以where ~ in处理两列或更多列?

const users = [
  {
    user_id: 1,
    school_id: 11,
    ..
  },
  {
    user_id: 2,
    school_id: 22
  },
  ..
]

await prisma.user.findMany({
  where: {
    AND: {
      user_id: {
        in: users.map(user => user.user_id)
      },
      school_id: {
        in: users.map(user => user.school_id)
      }
    }
  }
})
Run Code Online (Sandbox Code Playgroud)

问题是它不会同时 user_id搜索和school_id。相反,它搜索两列中的任意一列。我会请求你们的帮助,或者你们有更好的方法来达到相同的结果。谢谢。

Aus*_*rim 16

AND如果您发送对象,我认为该选项不起作用。它通常需要一组对象(https://www.prisma.io/docs/reference/api-reference/prisma-client-reference#examples-46)。

执行查询的更简单方法是完全省略AND

await prisma.user.findMany({
  where: {
    user_id: {
      in: users.map(user => user.user_id)
    },
    school_id: {
      in: users.map(user => user.school_id)
    }
  }
})
Run Code Online (Sandbox Code Playgroud)

这本质上是一种‘隐性’ AND