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

Posted 乌瑟尔

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mysql 查询条件中字符串尾部有空格也能匹配上的问题相关的知识,希望对你有一定的参考价值。

一、表结构

TABLE person

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

以上是关于Mysql 查询条件中字符串尾部有空格也能匹配上的问题的主要内容,如果未能解决你的问题,请参考以下文章

MySQL命令大全:MySQL常用命令手册MySQL命令行大全查询工具

MYSQL command

mysql命令大全

mysql 命令

Mysql指令

mysql命令