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

如何使用Prisma ORM基于GREATEST()函数实现记录排序?

如何用Prisma ORM基于GREATEST()函数实现自定义排序?

我有一个包含updated_at和children_updated_at两列的数据库表,希望通过SQL函数GREATEST(updated_at, children_updated_at)将最新修改的记录排在前面,并且需要用Prisma ORM来实现这个需求。

我期望生成的SQL查询语句如下:

select * from Account ORDER BY GREATEST(updated_at, children_updated_at);

这里的排序逻辑是取updated_at和children_updated_at中的最大值作为排序依据,请注意这和先按updated_at排序、再按children_updated_at排序的逻辑完全不同,后者在Prisma里很容易实现。

输入表示例

nameupdated_atchildren_updated_at
User 12024-05-07 10:00:00.0002024-05-07 13:00:00.000
User 22024-05-07 11:00:00.0002024-05-07 09:00:00.000
User 32024-05-07 12:00:00.0002024-05-07 10:00:00.000

期望输出结果

[
  { "name": "User 1",
    "updated_at": "2024-05-07 10:00:00.000",
    "children_updated_at": "2024-05-07 13:00:00.000"
  },
  { "name": "User 3",
    "updated_at": "2024-05-07 12:00:00.000",
    "children_updated_at": "2024-05-07 10:00:00.000"
  },
  { "name": "User 2",
    "updated_at": "2024-05-07 11:00:00.000",
    "children_updated_at": "2024-05-07 09:00:00.000"
  }
]

我查了Prisma的官方文档,没找到关于使用GREATEST()或其他组合列SQL函数的相关内容。由于实际的查询逻辑比较复杂,直接用原生SQL查询无法满足需求,请问这种情况能不能通过Prisma ORM来实现?

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 11:17:22