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

  • 相关阅读:
    Java中的多态polymorphism
    Java中的“继承”
    面向对象(Oriented Object Programing)的本质
    Java设计方法原则
    Motor Parameter
    Motor Vocabuary
    JD
    CAN
    多个TXT文件合成一个,输出到excel里
    正则表达式
  • 原文地址:https://www.cnblogs.com/wzk-0000/p/12298015.html
Copyright © 2011-2022 走看看