mysql - 当字符串值不正确时如何在mysql中转换字段字符?
问题描述
这是我的创建表 sql:
CREATE TABLE `owner` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`name` varchar(100) CHARACTER SET gbk NOT NULL
PRIMARY KEY (`id`)
);
表中已经有一些历史数据。
我想将名称字段的字符从gbk更改为utf8
当我执行此 sql 时:
ALTER TABLE owner MODIFY COLUMN name varchar(100) CHARACTER SET utf8;
返回错误信息:
错误 1366 (22007):不正确的字符串值:列 '\xA3\xA0'
test
。owner
.name
在第 3047064 行
检查此行数据:
MariaDB [sd]> select * from owner limit 3047063,1;
+-------------+------------+
| id | name |
+-------------+------------+
| 3047945 | 欧文? |
+-------------+------------+
1 row in set (0.402 sec)
我认为问题应该出现在这个上?
。
还有很多其他类似的数据,如何快速处理?
可以删除,可以更新。
解决方案
问题已经解决了!
使用HEX
功能。
select * from owner where hex(name) like '%A3A0'
推荐阅读
- php - Woocommerce 在结帐页面按付款隐藏优惠券字段
- python - 无法加载经过训练的检查点
- android-studio - 如何在 Android Studio 中找到扩展控件按钮?
- javascript - mongoose.populate() 未显示填充内容
- unix - 如何使用 Unix 从一行中删除第二次出现
- c# - 许多,复杂的 ModelError 添加
- python - Discord Bot 不响应命令(Python)
- android - 当应用于文档和事件接收设备的多项更改没有互联网可用时,Firestore Snapshotlistener 如何接收事件
- python - Numpy合并2列值
- java - 如何处理无法使用 DB 的 Java 控制台应用程序中的存储?