MySQL的char和varchar存储和查询中包含空格的实验
MySQL版本

一、测试char包含空格的存储和查询
测试发现,存储的数据,char数据类型的右侧空格存储的时候被删除了,但是左侧空格还保留。
测试发现,查询的时候,char数据类型只是会判断查询条件中左侧的空格,右侧的空格也会忽略,因此查询1和查询3的结果是一致的。
二、测试varchar包含空格的存储和查询
测试发现,存储的数据,varchar数据类型的空格均保留,没有进行删除。
测试发现,查询的时候,varchar数据类型只是会判断查询条件中左侧的空格,会忽略右侧的空格,因此查询1和查询3的结果是一致的。
三、小结
char在存储的时候会将右侧空格进行剔除,保留左侧空格。
varchar在存储的时候保留所有空格,不进行任何删除
varchar和char在查询的时候都只会根据where条件中的左侧空格进行判断,右侧末尾的空格会忽略
转自:http://fordba.com/mysql-char-and-varchar-storage-include-blankspace.html