坑点1⚠️1.在某些情况下当某个字段在sql执行查询时,可能会在末尾带一个空格,这在sql执行时匹配可能会出现问题:
比如有这样一个sql语句:
select * from table where column = 'value ';
在数据库中存在2条记录,”value “和”value “,都会被查询出来。
文档上说是MySQL校对规则属于PADSPACE的原因,对CHAR和VARCHAR值进行比较都忽略尾部空格,和服务器配置、MySQL版本没关系。
解决方法:
1.使用like:
select * from table where user_name like 'value ';
2.使用length()函数
select * from table where user_name = 'value ' and len(user_name) = len('value ');
