我有一张带有文字的表格,肯定会在文本中加上重音áéíóú等。
然而,与此相关的另一个系统在管理重音时遇到了问题。
我正在创建一个View,以便此系统连接到该视图,但我想从查询中删除重音。
有没有办法在查询中替换这些字符? (原始数据不得转换)
让我们说变换:
Héctor
Pablo
Pedro
María
到
Hector
Pablo
Pedro
Maria
答案 0 :(得分:0)
执行此操作的标准方法是应用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;