簡體   English   中英

如何在非字符串字段的 Prisma ORM 中使用 MySQL 的 LIKE?

[英]How to use MySQL's LIKE in Prisma ORM on non string fields?

有一段時間編寫原始 SQL 查詢的經驗,我想在 Node.js 中使用 Prisma 來向 MySQL 詢問類似的東西:

SELECT ..... WHERE dateField LIKE '2020-05%'

或者

SELECT ..... WHERE numberField LIKE '%99'

我知道,數據庫會返回我想要的。

我就是無法讓 Prisma 做到這一點。 可能嗎?

對於字符串/varchar 字段,我在where對象中使用contains關鍵字,它工作正常。

const orders = await prisma.order.findMany({
  where: {
    textField: {
        contains: 'test'
    }
  }
});

是否有任何解決方法可以為日期/數字類型字段獲取此類功能?

我設法在 Prisma 中運行原始 SQL 作為解決方法:

const orders = await prisma.$queryRaw`SELECT * FROM Order WHERE dataField LIKE '%-05-%'`;

它甚至可以進行類型轉換:

import { Order } from '@prisma/client'
const orders = await prisma.$queryRaw<Order[]>`SELECT * FROM Order WHERE dataField LIKE '%-05-%'`;

不漂亮,但按預期工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM