MySQL有没有办法在select查询中替换utf8字符?

时间:2018-02-15 18:45:49

标签: mysql sql utf-8 google-data-studio collate

我有一张带有文字的表格,肯定会在文本中加上重音áéíóú等。

然而,与此相关的另一个系统在管理重音时遇到了问题。

我正在创建一个View,以便此系统连接到该视图,但我想从查询中删除重音。

有没有办法在查询中替换这些字符? (原始数据不得转换)

让我们说变换:

Héctor
Pablo
Pedro
María

Hector
Pablo
Pedro
Maria

1 个答案:

答案 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;

SQL Fiddle