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

标签 mysql sql utf-8 looker-studio collate

我有一个表格,其中的文本肯定会有重音 áéíóú 等。

然而,连接到此的另一个系统在管理重音方面存在问题。

我正在创建一个 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;

SQL Fiddle

关于MySQL有没有办法在选择查询中替换utf8字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48814262/

相关文章:

sql - 对于每个国家,找到人口最多的城市和该城市的人口

Python 与包含转义字符的字符串的绑定(bind)

换行后 Unicode 字符变得困惑

在不知道语言的情况下大小写 UTF-8

php - 创建表时php代码中的外键约束

javascript - 生成 PHP 数组以模仿 JSON 格式

mysql - SQL Server 备份到 MySQL

mysql 条件连接取决于列

mysql - 如何从 SQL 中的两列数据中过滤唯一集

utf-8 - 数据 URI 中的字符集