[转帖]mysql 查询条件字段值末尾有空格的问题_MySQL, Oracle及数据库讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  MySQL, Oracle及数据库讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 2044 | 回复: 0   主题: [转帖]mysql 查询条件字段值末尾有空格的问题        下一篇 
ad222888
注册用户
等级:新兵
经验:66
发帖:134
精华:0
注册:2016-9-25
状态:离线
发送短消息息给ad222888 加好友    发送短消息息给ad222888 发消息
发表于: IP:您无权察看 2018-8-27 17:12:42 | [全部帖] [楼主帖] 楼主

今天在工作过程中遇到了一个很奇怪的mysql查询问题,当作为查询条件的字符串末尾有空格时,可以查到数据库中末尾不含空格的值。经过多次查阅资料,最后找到三种解决的方法,现在分享给大家。

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,大家可以随便选一种方法。

原文地址:http://www.manongjc.com/article/1109.html




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论