Prisma: How can I implement a complex conditional query in Prisma?

Viewed 23

I have the following SQL query which I have to convert into a Prisma query but it seems that Prisma does not allow nested AND and OR query.How can the same be done?

SELECT * 
FROM employees 
WHERE (firstname LIKE '%Alex%' OR  firstname LIKE '%Sean%') 
AND (lastname LIKE '%Dennard%' OR lastname  LIKE '%Joy%') 
AND (age = 10) 
AND (middlename LIKE 'Ali%' AND middlename NOT LIKE 'Alish')
1 Answers

You should be able to run this:

await prisma.employee.findMany({
  where: {
    AND: [
      {
        OR: [
          { firstname: { contains: "Alex" } },
          { firstname: { contains: "Sean" } },
        ],
      },
      {
        OR: [
          { lastname: { contains: "Dennard" } },
          { lastname: { contains: "Joy" } },
        ],
      },
      {
        age: 10,
      },
      // ...
    ],
  },
});
Related