码迷,mamicode.com
首页 > 数据库 > 详细

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

时间:2020-02-12 10:41:29      阅读:124      评论:0      收藏:0      [点我收藏+]

标签:运算符   varchar   code   body   tle   mys   表结构   and   arch   

一、表结构

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 查询条件中字符串尾部有空格也能匹配上的问题

标签:运算符   varchar   code   body   tle   mys   表结构   and   arch   

原文地址:https://www.cnblogs.com/wzk-0000/p/12298015.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!