问题描述
在使用mysql innodb 默认的配置时,发现mysql查询时是忽略大小写和末尾空格的。
示例
比如下面的查询:查询条件中是大写的字母,末尾也没有空格。但是查询出的结果中,既有小写的,也有末尾带有空格的,从输出的length字段,和输入框可以看出。另外测试发现以空格开头的数据并不会匹配到。
SELECT LENGTH(artist_name), artist_name FROM artist where artist_name = 'MC梁逍遥';
可能引起的问题
如果业务代码程序区分大小写,或者末尾的空格,就会造成与数据库不一致的问题,就会引起后续的数据不一致问题。比如查询时发现有结果,但是当将结果作为查找表时,业务代码就会发现数据不存在。