根据这个回答,CHAR和VARCHAR以不同的方式返回长度。
但是当我运行这个代码
CREATE TABLE EMPLOYEE
( ID INT,
Var_Name VARCHAR(5) NOT NULL,
Char_Name CHAR(5) NOT NULL,
Age INT,
Dnumber INT,
Level INT,
PRIMARY KEY (ID)
);
INSERT INTO EMPLOYEE (ID, Var_Name, Char_Name, Age, Dnumber, Level) VALUES(1,'Tom', 'Tom', 21, 2, 5);
INSERT INTO EMPLOYEE (ID, Var_Name, Char_Name, Age, Dnumber, Level) VALUES(2,'Lucky', 'Lucky', 22, 2, 3);
INSERT INTO EMPLOYEE (ID, Var_Name, Char_Name, Age, Dnumber, Level) VALUES(3,'Blue', 'Blue', 20, 2, 3);
SELECT Var_Name, LENGTH(Var_Name), LENGTH(Char_Name) FROM EMPLOYEE输出:
Var_Name LENGTH(Var_Name) LENGTH(Char_Name)
Tom 3 3
Lucky 5 5
Blue 4 4我认为输出应该是这样的:
Var_Name LENGTH(Var_Name) LENGTH(Char_Name)
Tom 3 5
Lucky 5 5
Blue 4 5为什么CHAR和VARCHAR返回相同的长度?
发布于 2020-11-10 04:56:17
MySQL 8.0参考手册/./ CHAR和VARCHAR类型
CHAR列的长度固定在创建表时声明的长度。长度可以是0到255之间的任意值。当存储CHAR值时,它们将以指定长度的空格填充.检索CHAR值时,除非启用PAD_CHAR_TO_FULL_LENGTH SQL模式,否则将移除尾随空格。
https://stackoverflow.com/questions/64763068
复制相似问题