详解Mysql查询条件中字符串尾部有空格也能匹配上的问题
一、表结构
TABLEperson
id | name |
---|---|
1 | 你 |
2 | 你(一个空格) |
3 | 你(二个空格) |
二、查询与结果
select*frompersonwhere`name`=?
无论?=”你+几个空格”,都会检索出全部三个结果。
三、原因
MySQL校对规则属于PADSPACE,会忽略尾部空格
针对的是varcharchartext……等文本类的数据类型
此为SQL标准化行为。无需要设置也无法改变。
四、想要精确查询怎么办?
方法一:like
select*frompersonwhere`name`like?
方法二:BINARY
select*frompersonwhere`name`=BINARY?
BINARY不是函数,是类型转换运算符,它用来强制它后面的字符串为一个二进制字符串,可以理解成精确匹配
以上就是本次介绍的全部相关知识点,如果大家有任何补充可以联系毛票票小编。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。