mysql - Loopback 4 + MySQL:字符集'utf32_bin'不能与'binary'一起使用来调用regexp_like
问题描述
我正在使用带有 mysql 8.0.22 的环回 4。当我想执行以下操作时:
let orders = await this.orderRepository.find({
where: {events: {regexp: new RegExp(`.*"id":${event.id}.*`)}},
});
我收到以下错误:
500 Error: UNKNOWN_CODE_PLEASE_REPORT: Character set 'utf32_bin' cannot be used in conjunction with 'binary' in call to regexp_like.
在我的本地主机上,这似乎工作正常,我不知道为什么。
我怎样才能解决这个问题?
解决方案
loopback-connector-mysql
BINARY
如果您使用区分大小写的 RegExp,则添加到查询中:
MySQL 8.0.22 不允许REGEXP BINARY
使用“非二进制”类型(CHAR、VARCHAR、TEXT 等)
是否为 UTF-8/16/32 无关紧要。
一个简单的解决方案可能是使用不区分大小写的 RegExp:
let orders = await this.orderRepository.find({
where: {events: {regexp: new RegExp(`.*"id":${event.id}.*`, "i")}},
});
或者将字段更改为二进制类型。像 VARBINARY、BLOB 等(或 JSON,如果您以该格式存储数据)。
推荐阅读
- c# - C# periodsssss
- java - 我应该使用策略模式吗,如果我有数百个动作
- node.js - Loopback 4 动态更改 mongoDb 集合名称?
- python - Pandas Read.csv 将数组作为字符串返回
- android - 在 arm64 chromebook 上安装 android studio/android-sdk
- r - 将一列的分类值拆分为多列
- ansible - 如何将发现的值放入循环变量中,以便它们位于一行
- ansible - WSO2APIM:以编程方式添加身份提供者
- html - CSS如何在恰好到达页脚上方后分页表格并以相同的高度继续表格?
- php - Laravel Nova 资源解析使用不使用属于