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

  

<强>一、表结构
  

  表人

  

           id   的名字               1   你         2   你(一个空格)         3.   你(二个空格)            

  

<强>二,查询与结果

        select *从一个人的名字'=& # 63;之前      

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

  

<强>三,原因
  

  

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

  

针对的是varchar字符文本……等文本类的数据类型

  

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

  

<强>四,想要精确查询怎么办?
  

  

<强>方法一:像

        select *等人,“名字”& # 63;      

<强>方法二:二进制

        select *从人的名字'=二进制& # 63;      
  

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

     

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

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