服务器之家

服务器之家 > 正文

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

时间:2021-01-06 16:23     来源/作者:小蒋不素小蒋

一、表结构

TABLE person

 

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

 

二、查询与结果

?
1
select * from person where `name` = ?

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

三、原因

MySQL 校对规则属于PADSPACE,会忽略尾部空格

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

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

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

方法一:like

?
1
select * from person where `name` like ?

方法二:BINARY

?
1
select * from person where `name` = BINARY ?

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

以上就是本次介绍的全部相关知识点,如果大家有任何补充可以联系服务器之家小编。

原文链接:https://www.cnblogs.com/xjnotxj/p/9019866.html

相关文章

热门资讯

2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全 2019-12-26
Intellij idea2020永久破解,亲测可用!!!
Intellij idea2020永久破解,亲测可用!!! 2020-07-29
背刺什么意思 网络词语背刺是什么梗
背刺什么意思 网络词语背刺是什么梗 2020-05-22
歪歪漫画vip账号共享2020_yy漫画免费账号密码共享
歪歪漫画vip账号共享2020_yy漫画免费账号密码共享 2020-04-07
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总 2020-11-13
返回顶部