我想在我的数据库中搜索这个角色 İ
-“上面带点的拉丁文大写字母i(u+0130)”—替换为正则表达式 I
(u+0049)。
例如,我想转换“si”̇从“唱”到“唱”。
数据库排序规则是utf8mb4\u unicode\u ci。
我可以用 COLLATE utf8mb4_bin
```
SELECT * FROM benches
WHERE inscription
LIKE '%İ%' COLLATE utf8mb4_bin
但我无法取代它。
UPDATE benches
SET inscription = REPLACE(inscription, 'İ', 'I') WHERE INSTR(inscription, 'İ') > 0 COLLATE utf8mb4_bin
我得到了错误
1253 - COLLATION 'utf8mb4_bin' is not valid for CHARACTER SET 'latin1'
这很奇怪,因为数据库和列 `utf8mb4_unicode_ci` 那么,我需要什么神奇的调用来搜索和替换字符串中的特定unicode字符呢?
1条答案
按热度按时间inkz8wg91#
快速解决方法可能是
更好的解决方法可能是在连接后执行此操作:
如果这两个都不起作用,请提供一个测试用例,包括创建和填充一个表,以及
UPDATE
. 可能需要一些实验才能想出另一种可能的解决办法。