-
前言
虽然myisam存储引擎现在已经都没怎么用到了,但是今天学到这个知识点,所以还是记录一下。 -
myisam默认去掉尾部的空格
创建myisam表
[root@localhost aaa]>create table t2 (id int,name varchar(20)) engine=myisam;
Query OK, 0 rows affected (0.00 sec)
插入四条数据
[root@localhost aaa]>insert into t2 values (1,'aaaaa');
Query OK, 1 row affected (0.01 sec)
[root@localhost aaa]>insert into t2 values (2,'aaaaa ');
Query OK, 1 row affected (0.00 sec)
[root@localhost aaa]>insert into t2 values (3,' aaaaa ');
Query OK, 1 row affected (0.00 sec)
[root@localhost aaa]>insert into t2 values (4,' aaaaa');
Query OK, 1 row affected (0.00 sec)
可以看到name列为varchar类型时显示正确的字符,保留了尾部的空格。
[root@localhost aaa]>select name,length(name) from t2;
+-------------+--------------+
| name | length(name) |
+-------------+--------------+
| aaaaa | 5 |
| aaaaa | 8 |
| aaaaa | 11 |
| aaaaa | 8 |
+-------------+--------------+
4 rows in set (0.00 sec)
修改name列为char类型
[root@localhost aaa]>alter table t2 modify name char(10);
Query OK, 4 rows affected (0.01 sec)
Records: 4 Duplicates: 0 Warnings: 0
可以看到查询name列时,去掉了尾部的空格。
[root@localhost aaa]>select name,length(name) from t2;
+----------+--------------+
| name | length(name) |
+----------+--------------+
| aaaaa | 5 |
| aaaaa | 5 |
| aaaaa | 8 |
| aaaaa | 8 |
+----------+--------------+
4 rows in set (0.00 sec)
3.总结
当表的存储引擎是myisam时,使用char类型要注意查询数据时会去掉尾部的空格。
请关注我的订阅号,谢谢。