首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在MySQL CHAR字段中存储空格字符?

如何在MySQL CHAR字段中存储空格字符?
EN

Stack Overflow用户
提问于 2015-09-22 17:33:28
回答 1查看 6.1K关注 0票数 5

我有一个带有CHAR(1)字段的MySQL表。我在里面储存单个字符。有时我需要在这个领域中存储一个空间,但是MySQL不允许我。我使用的是MySQL v.5.6.22。

这将运行,但存储了一个空字段:

代码语言:javascript
复制
INSERT INTO
companies(name_char_0)
values(' ');

这将返回一个空值:

代码语言:javascript
复制
SELECT HEX(name_char_0)
FROM companies;

我在VARCHAR(1)字段中没有遇到这个问题,但是我有一系列这样的CHAR字段,因为查找和速度是一个问题。我相信VARCHAR(1)字段的搜索速度总是比CHAR(1)字段慢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-09-22 17:39:26

在CHAR字段中,使用空格将字段填充到其长度,然后删除空格:

来自https://dev.mysql.com/doc/refman/5.0/en/char.html

CHAR列的长度固定在创建表时声明的长度。长度可以是0到255之间的任意值。当存储CHAR值时,它们将以指定长度的空格填充.当检索CHAR值时,删除尾随空格。

如果您只想保留一个空格,则不应该使用CHAR类型。

如果在MySQL > 5.0.2中使用VARCHAR(1),则不应遇到此问题:

从MySQL 5.0.3开始,在存储和检索值时,将保留尾随空格,这与标准的SQL一致。在VARCHAR 5.0.3之前,当尾随空格存储到VARCHAR列中时,它们将从值中移除;这意味着从检索到的值中也没有这些空格。

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

https://stackoverflow.com/questions/32723272

复制
相关文章

相似问题

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