如何以不区分大小写的方式查询字符串?

Mat*_*tte 10 postgresql typescript prisma

我的问题很简单:我有一个查询,我正在寻找字符串的匹配项,例如:

\n
const test_name = 'ExAmPlE'\nconst database_resources = await prisma.market.findMany({\n    where: {\n        name: test_name\n    }\n})\n
Run Code Online (Sandbox Code Playgroud)\n

我可以使用string.toLowerCase(),但仅限于特定用例

\n

如何获取名称可以是任何名称(例如 )ExampleExAMpleexample不能是任何其他键(例如 )的所有行Ex\xc3\xa0mpl\xc3\xa9

\n

Dan*_*ila 23

取决于您的数据库。引用文档:

PostgreSQL默认使用确定性排序规则,这意味着过滤是区分大小写的。要支持不区分大小写的过滤,请mode: 'insensitive'在每个字段的基础上使用该属性:

const test_name = 'ExAmPlE'
const database_resources = await prisma.market.findMany({
    where: {
        name: {
            equals: test_name,
            mode: 'insensitive'
        }
    }
})
Run Code Online (Sandbox Code Playgroud)

MySQL默认使用不区分大小写的排序规则。因此,使用 Prisma Client 和 MySQL 进行过滤默认不区分大小写。mode: 'insensitive'属性不是必需的,因此在生成的 Prisma 客户端 API 中不可用。

有关其他提供商的更多信息,请参阅文档