首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL如何将varchar转换为char?

问MySQL如何将varchar转换为char?
EN

Stack Overflow用户
提问于 2011-07-21 23:17:48
回答 3查看 2.7K关注 0票数 0

当我们添加一个新表时,我们犯了一个错误:一个字段是varchar(255),但我们必须编写连接查询。所以我们修改table来生成一个char(6)。

我的问题是: MySQL在这种情况下是什么?它可以修剪,对吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-07-21 23:23:14

与其担心MySQL做了什么或不做什么,为什么不在更改之前自己转换数据。

例如:

代码语言:javascript
复制
UPDATE YourTable
SET YourField = LEFT(YourField,6);

ALTER TABLE YourTable MODIFY COLUMN YourField Char(6)

您应该注意到,如果您的列数据太长,它将不允许您执行alter操作,假设enable strict SQL mode请参阅Shef的完整答案

票数 3
EN

Stack Overflow用户

发布于 2011-07-21 23:28:33

它将尝试转换格式。在您的示例中,该列是字符串类型,因此如果未启用strict SQL模式,它将截断值。

使用change或MODIFY更改数据类型时,MySQL会尝试将现有列值尽可能地转换为新类型。

警告此转换可能会导致数据更改。例如,如果缩短字符串列,值可能会被截断。如果转换到新数据类型会导致数据丢失,为了防止操作成功,请在使用ALTER TABLE之前启用strict模式(请参阅第5.1.6节“服务器SQL模式”)。

将精美的warning向下阅读五分之二的页面。

票数 1
EN

Stack Overflow用户

发布于 2011-07-21 23:27:26

如果有数据丢失的情况,MySQL甚至不允许你修改表格(例如,一行有一个字段文本长度超过六个字符的条目),所以你最好按照你认为合适的方式转换数据。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6778440

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档