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

一、表结构 TABLE person id name 1 你 2 你(一个空格) 3 你(二个空格) 二、查询与结果 select * from person where `name` = 无论 ? = ”你 + 几个空格”,都会检索出全部三个结果。 三、原因 M

一、表结构

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

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

上一篇 Win10怎么去掉桌面右下角激活windows水印?
下一篇 Win10一直显示正在配置更新怎么解决?
泡泡

泡泡

做最好的知识分享 CSDN云计算领域优质创作者,2022新星计划算法赛道实力新星 算法/云计算/云原生

本月创作热力图