当前位置: 移动技术网 > IT编程>数据库>Mysql > 详解Mysql查询条件中字符串尾部有空格也能匹配上的问题

详解Mysql查询条件中字符串尾部有空格也能匹配上的问题

2020年05月10日  | 移动技术网IT编程  | 我要评论

一、表结构

table person

id name
1
2 你(一个空格)
3 你(二个空格)

二、查询与结果

select * from person where `name` = ? 

无论 ? = ”你 + 几个空格”,都会检索出全部三个结果。

三、原因

mysql 校对规则属于padspace,会忽略尾部空格

针对的是 varchar char text …… 等文本类的数据类型

此为 sql 标准化行为。无需要设置也无法改变。

四、想要精确查询怎么办?

方法一:like

select * from person where `name` like ?

方法二:binary

select * from person where `name` = binary ?

binary 不是函数,是类型转换运算符,它用来强制它后面的字符串为一个二进制字符串,可以理解成精确匹配

以上就是本次介绍的全部相关知识点,如果大家有任何补充可以联系移动技术网小编。

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网