当字符串值不正确时,如何转换mysql中的字段字符?
这是我的创建表sql:当字符串值不正确时,如何转换mysql中的字段字符?,mysql,Mysql,这是我的创建表sql: CREATE TABLE `owner` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `name` varchar(100) CHARACTER SET gbk NOT NULL PRIMARY KEY (`id`) ); 表中已经有一些历史数据。 我想将name字段的字符从gbk更改为utf8 当我执行此sql时: ALTER TABLE owner MODIFY COLUMN name varchar(100)
CREATE TABLE `owner` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`name` varchar(100) CHARACTER SET gbk NOT NULL
PRIMARY KEY (`id`)
);
表中已经有一些历史数据。我想将name字段的字符从gbk更改为utf8
当我执行此sql时:
ALTER TABLE owner MODIFY COLUMN name varchar(100) CHARACTER SET utf8;
返回错误消息:
错误1366(22007):列的字符串值“\xA3\xA0”不正确
测试
所有者
名称
第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'