MySQL中关于查询条件中的字符串空格问题
来源:互联网 发布:淘宝商城游戏装备 编辑:程序博客网 时间:2024/05/22 00:17
假设当前mysql数据库中有个表:sysuser
有个字段是:sysUseName
字段中有条记录的内容是:robin
请看下面这两个SQL语句:
SELECT * from sysuser s where s.sysUseName = 'robin'
SELECT * from sysuser s where s.sysUseName = 'robin空格'
SELECT * from sysuser s where s.sysUseName = 'RoBin空格'
这三条语句均可以查询出那条记录。
官方文档上说是MySQL校对规则属于PADSPACE,对CHAR和VARCHAR值进行比较都忽略尾部空格,和服务器配置以及MySQL版本都没关系。
MySQL安装目录下有个doc目录(Windows),里面的 Data Types -> String Types -> The CHAR and VARCHAR Types 这一小节有对这个问题的说明以及相关的例子(版本不一样可能章节的编号可能有变动,还是看标题吧): All MySQL collations are of type PADSPACE. This means that all CHAR and VARCHAR values in MySQL are compared without regard to any trailing spaces.
这样带来的问题是:我如何需要精确匹配robin这个内容?假设有一个登陆功能,我希望用户输入‘robin’可以登陆,但是输入‘robin空格’却不能登录,该如何实现。
解决办法如下:
SELECT * from sysuser s where s.sysUseName = BINARY 'robin '
BINARY不是函数,是类型转换运算符,它用来强制它后面的字符串为一个二进制字符串,可以理解为在字符串比较的时候区分大小写,精确匹配。
另外,因为有的MySQL特别是4.*以前的对于中文检索会有不准确的问题,可以在检索的时候加上binary。
官方:http://dev.mysql.com/doc/refman/5.5/en/char.html
- MySQL中关于查询条件中的字符串空格问题
- MySQL中关于查询条件中的字符串空格问题
- MySQL中关于查询条件中的字符串空格问题
- MySQL查询条件中字符串包含空格的问题
- MySQL关于查询条件中:字符串类型的值忽略英文字母的大小写以及字符串尾部包含空格的问题
- MySQL查询时的字符串空格问题
- 关于字符串中的空格问题?高手帮忙!!
- 关于js去除字符串中的空格问题
- mysql查询空格问题
- C语言:关于计算字符串中空格数的问题
- MATLAB中去掉字符串中的空格,num2str引发的问题
- mysql 查询时间条件问题
- mysql查询条件失效问题
- 关于mysql按空格分割查询
- 字符串变量作mysql查询条件
- 关于Python去掉字符串中的空格
- SQLite:注意查询条件中空格的影响
- 关于sql查询中的多条件排序
- WARN conf.Configuration: mapred.output.value.class is deprecated. Instead, use mapreduce.job.output.
- Map
- android的ImageView中XML属性src和background的区别
- pat 1029
- 如何编写高效的Android代码
- MySQL中关于查询条件中的字符串空格问题
- 几个流行而其免费的SVN服务器
- 判断大端小端函数
- C++ Socket编程步骤
- Java构造方法
- 解决MyEclipse运行太慢
- how to add lun
- Android SDK manager fetching 不到 解决方案
- JS实现页面跳转的几种方式