我有一张包含数据的表格。我想更改其中一列的字符编码。目前该列似乎有两种编码。即使在更改之后,我也会看到相同的结果。
当前编码
mysql> SELECT character_set_name FROM information_schema.`COLUMNS`
-> WHERE table_name = "mytable"
-> AND column_name = "my_col";
+--------------------+
| character_set_name |
+--------------------+
| latin1 |
| utf8 |
+--------------------+
2 rows in set (0.02 sec)
更改编码(0行受影响)
mysql> ALTER TABLE mytable MODIFY my_col LONGTEXT CHARACTER SET utf8;
Query OK, 0 rows affected (0.05 sec)
Records: 0 Duplicates: 0 Warnings: 0
答案 0 :(得分:0)
您可能有2行,因为它是两个不同数据库中的两个不同的表。
SELECT * ...
代替SELECT character_set_name ...
。
ALTER TABLE mytable MODIFY my_col LONGTEXT CHARACTER SET utf8;
仅安全 。
声明为latin1,并包含latin1 bytes 的表可以通过
转换为utf8ALTER TABLE tbl CONVERT TO CHARACTER SET utf8;