gpt4 book ai didi

MySQL 列名是一个奇怪的字符 - 我该如何更改它?

转载 作者:行者123 更新时间:2023-11-29 01:29:48 26 4
gpt4 key购买 nike

我正在检查 MySQL 中的一个表,该表的列名很奇怪。我想将列的名称更改为不奇怪。我不知道该怎么做。

首先,如果我先做

SET NAMES utf8;
DESC `tblName`;

我明白了

| Ԫ                           | varchar(255)  | YES  | MUL | NULL    |                |

相反,做

SET NAMES latin1;
DESC `tblName`;

结果

| ?                           | varchar(255)  | YES  | MUL | NULL    |                |

很公平 - 这让我觉得列名只是一个 latin1 问号。但是这个声明不起作用:

mysql> ALTER TABLE `tblName` CHANGE COLUMN `?` `newName` VARCHAR(255);
ERROR 1054 (42S22): Unknown column '?' in 'tblName'

所以我去 information_schema 表获取一些信息:

mysql> SELECT column_name, HEX(column_name), ordinal_position FROM information_schema.columns WHERE table_schema = 'myschema' AND table_name = 'tblName' ;
| ? | D4AA | 48 |

我查了这个十六进制点,假设我查对了(这可能不是真的),我确定这个字符是“풪”,也就是“hangul syllable pweoj”。所以我在 alter table 语句中尝试了但无济于事:

ALTER TABLE `tblName` change column `풪` `newName` VARCHAR(255);

所以这就是我被困的地方。

最佳答案

我想出了一个方法来做到这一点(但我想知道是否有更好的解决方案?)

我做了一个SHOW CREATE语句:

mysql> SHOW CREATE TABLE `tblName`;
...
`Ԫ` varchar(255) DEFAULT NULL,

我查找了有问题的列,它打印得很奇怪(您在上面看到的与它不完全匹配)。结束反引号不可见。但我突出显示了可见的内容并将其粘贴到我的 ALTER TABLE 中,最终解决了这个问题。

关于MySQL 列名是一个奇怪的字符 - 我该如何更改它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19364028/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com