【发布时间】:2021-02-12 13:56:54
【问题描述】:
我正在尝试将 javascript 应用程序与在数据库中创建名称的第三方 API 集成。我的问题是第三方应用程序使用 utf8_general_ci 排序规则来确定名称的唯一性,在我的应用程序中,我需要动态确定我要发送的名称是否已经存在于他们的数据库中,以防止重复名称错误。基本上流程是这样的:
-
我的应用程序接受用户输入的名称:“somename”
-
我的应用程序向第三方 API 发出“somename”的搜索请求,该请求返回:
[
{
"id": 1,
"name": "Somënamë"
},
{
"id": 2,
"name": "somename somesecondname"
},
{
"id": 3,
"name": "somename someothername"
}
]
- 我的应用程序需要确定是否应该创建新记录“somename”或重复使用其中一个结果
在这种情况下,我的应用程序需要确定“somename”和“Somënamë”在 utf8_general_ci 比较中是相等的,并且应该使用 id=1 的记录,而不是尝试创建新记录(这将导致重名)
基本上我需要和第三方数据库进行相同的字符串比较
我尝试过的一个选项是使用 mysql 实例来检查
SELECT IF(_utf8:string1 COLLATE utf8_general_ci = _utf8:string2 COLLATE utf8_general_ci, "true", "false") as equals;
但这对我的情况来说太耗费资源了,我们可能会得到数千个结果..
有没有办法在 javascript 中至少半准确地模拟这种排序规则检查,而不必在我这边使用数据库?
【问题讨论】:
标签: javascript mysql string comparison collation