比如有这样一个sql语句:
select *from table where user=\'wxp \';
注意“wxp ”后面是有空格的,即“wxp空格”。
执行这个SQL语句,却可以查到数据库中user为"wxp"的那一行。
这是什么原因呢?
官方文档上说是MySQL校对规则属于PADSPACE,对CHAR和VARCHAR值进行比较都忽略尾部空格,和服务器配置以及MySQL版本都没关系。
下面小编为大家提供三种解决方案:
第一种方法:使用like
select *from table where user like \'wxp \';
第二种方法:使用BINARY
select *from table where user=BINARY \'wxp \';
第三种方法:使用len函数
select * from table where user=\'wxp \' and len(user)=len(\'wxp \');
三种方法都可以解决mysql 查询条件字段值末尾有空格的bug,大家可以随便选一种方法。
继续阅读与本文标签相同的文章
上一篇 :
5G时代的新商业版图
下一篇 :
被唱衰的iPhone11为何预售大卖?
-
健乐教学机器人可开展的教学实训内容
2026-05-14栏目: 教程
-
5G套餐曝光遭“吐槽”,iphone11受追捧,导致苹果11销量比较高
2026-05-14栏目: 教程
-
为什么修电脑的叫自己不要杀毒和清理垃圾?
2026-05-14栏目: 教程
-
当水乡建筑遇上机器人,成就乌镇又一网红景点
2026-05-14栏目: 教程
-
惊险!手刹失灵,郴州一货车开启“无人驾驶”模式……
2026-05-14栏目: 教程
