我有一个数据库,其中有一堆分散在几个表中的utf8字符.

修复给定的表非常简单

update orderItem set itemName=replace(itemName,'á','á');

但是我找不到一种方法来检测那些破碎的角色.如果我做了类似的事情

SELECT * FROM TABLE WHERE field LIKE "%Ã%";

由于排序规则(Ã=a),我几乎得到了所有字段.到目前为止,所有破碎的角色都以"Ã"开头.数据库是西班牙语的,所以不使用这个特殊字符

到目前为止,我得到的坏字符列表是

á = á
é = é
í- = í
ó = ó
ñ = ñ
á = Á

你知道如何让这个 Select 按预期运行吗?(二进制搜索之类的)

推荐答案

另一种方法如何,即来回转换列以获得正确的字符集?您可以将其转换为二进制,然后转换为utf-8,然后再转换为iso-8859-1或其他任何您正在使用的格式.有关详细信息,请参见manual.

Mysql相关问答推荐

是否有一种方法可以在mysql中设置一列,使其自动成为该行的行号的值?

带负数的MySQL子字符串_索引

使用复合主键更新后的MySQL触发器失败

获取每个参数的记录,不重复

MySQL - 事务绑定多个存储过程调用和回滚的简单方法?

MySQL 可以用于将列表排序为三分之三吗?

Select 并统计所有条目并根据条目对它们进行分组

生成直到 10 的平方数序列

完全匹配 IN 子句中的所有值

基于关系的每个实体有一个真值和多个假值

Select 分组产品的数量和每个产品的最便宜的价格

使用 SET 变量进行 MySQL 查询

在 Presto Athena 中将字符串转换为数组

具有别名主机的 ssh 反向 mysql tunel

SQL UPDATE中的str_replace?

MySQL SELECT 增量计数器

用户 'User'@'%' 和 'User'@'localhost' 不一样吗?

在 MySQL 中存储 IPv6 地址

在 Ubuntu 上安装 mysql gem 的困难

int(11) 和 int(11) UNSIGNED 有什么区别?