MySQL中char和varchar的长度的区别

原创
2021/09/07 09:24
阅读数 67

MySQL在检索时从 CHAR 列删除了尾部的空格

这是之前从来没有注意到过的一个描述!

看代码:

USE `test`;
DROP TABLE IF EXISTS `vc`;
CREATE TABLE vc(
    `id` int UNSIGNED AUTO_INCREMENT,
    `v` VARCHAR(4), 
    `c` CHAR(4),
    PRIMARY KEY(id)
) ENGINE=InnoDB;

INSERT INTO vc(v,c)
VALUES('ab  ', 'ab  ') -- 后面有2个空格
,(' ab ', ' ab ') -- 左右各一个空格
,('', ''); -- 空字符串

SELECT v, length(v) AS len_v, c, length(c) AS len_c FROM vc;

执行的结果是:

这里看到的char的内容及其长度都是去掉了尾部的所有的空格!

但是在mysql的文件存储中, 保存的结果其实是一样的:

具体的原因, 待查....

展开阅读全文
加载中

作者的其它热门文章

打赏
0
0 收藏
分享
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部