我想用 Prisma 对字符串列进行排序而不是使用 $queryRaw

I want to sort string column with Prisma not use $queryRaw

我用MySQL.

名为 AGE 的列包含字符串形式的数字。

如果我用prisma排序,就不是1-2-...-9

1-11-2-333-...-88-9 这样排序。

我想知道除了使用 $queryRaw 之外还有什么方法可以排序。

您的模型将类似于:

model Person {
  id Int @id
  name String
  age Int
}

Prisma 为 orderBy 字段生成的类型定义是:

export type PersonOrderByWithRelationInput = {
  id?: SortOrder
  name?: SortOrder
  age?: SortOrder
}

…并且SortOrder定义为:

export const SortOrder: {
  asc: 'asc',
  desc: 'desc'
};

export type SortOrder = (typeof SortOrder)[keyof typeof SortOrder]

不幸的是,这意味着无法orderBy在这里做你想做的事。

您的选择是:

  • 使用queryRaw,
  • 对 Prisma 在 JavaScript / TypeScript 中返回的数组进行排序,
  • use a materialized view.