我有一个表格,其中的文本肯定会有重音 áéíóú 等。
然而,连接到此的另一个系统在管理重音方面存在问题。
我正在创建一个 View ,以便该系统连接到该 View ,但我想从查询中删除重音符号。
有没有办法替换查询中的这些字符? (原始数据不得进行任何变换)
比方说转换:
Héctor
Pablo
Pedro
María
至
Hector
Pablo
Pedro
Maria
最佳答案
执行此操作的标准方法是应用 Unicode 分解规范化,然后过滤掉组合字符。 MySql 不支持规范化(或 REGEXP_REPLACE 或 TRANSLATE)。
但是,如果你只有几个组合字符和 combining characters对于您关心的问题,REPLACE 应该可以很好地工作。
SELECT
data,
REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(data,
'á', 'a'),
'é', 'e'),
'í', 'i'),
'ó', 'o'),
'ú', 'u'),
convert(0xcc81 using utf8), '') -- 'COMBINING ACUTE ACCENT' (U+0301)
FROM test;
关于MySQL有没有办法在选择查询中替换utf8字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48814262/