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

使用Prisma findMany查询指定周数据返回空数组求助

问题描述

请求地址为 http://localhost:3000/user/test/week?week=13&year=2023,使用以下Prisma代码执行查询:

const result = await prisma.test.findMany({
    where: {
        isActive: true,
        week: value.week,
        year: value.year
    },
});
render(res, 200, statuscodes.OK, result);

执行后返回长度为0的数组,但预期应返回该周的对应数据,需排查解决。

排查与解决步骤

  • 检查参数接收与类型匹配
    先确认value.week和value.year是否正确获取到URL参数的13和2023,可在查询前打印日志验证:

    console.log('Params received:', value.week, value.year);
    

    若URL参数是字符串类型,而数据库中week/year为数字类型,需做类型转换:

    week: parseInt(value.week, 10),
    year: parseInt(value.year, 10)
    
  • 直接验证数据库数据
    在数据库客户端执行原生SQL,确认是否存在符合条件的数据:

    SELECT * FROM test WHERE isActive = true AND week = 13 AND year = 2023;
    

    若SQL返回空,说明数据库无对应数据,需检查数据录入逻辑;若SQL有结果,再排查Prisma查询逻辑。

  • 核对isActive字段匹配规则
    确认数据库中isActive的字段类型:如果是布尔型,检查对应数据的isActive是否为true;如果是整数型(如0/1),需将Prisma查询条件改为对应值,比如isActive: 1。

  • 检查Prisma模型与数据库表映射
    查看schema.prisma中Test模型的定义,确认week、year、isActive的字段名、类型是否与数据库表完全一致,避免因字段名不匹配导致查询失败。

  • 开启Prisma查询日志
    在schema.prisma中配置日志,查看实际执行的SQL语句:

    generator client {
      provider = "prisma-client-js"
      log = ["query"]
    }
    

    运行后查看终端输出的SQL,对比实际查询条件与预期是否一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 09:27:08