mysql查询条件中尾部带有空格会被忽略,头部带有空格不会被忽略。
即:
select * from t_user where name='admin '
等同于
select * from t_user where name='admin'
但是不等同于
select * from t_user where name=' admin'
查阅资料后得到的解释是:在mysql中,如果字段是char或varchar类型,那么在字符串比较的时候MySQL使用PADSPACE校对规则,会忽略字段末尾的空格字符,若想做到精确匹配可以使用下面几种方法:
方法1:使用like语句;
方法2:使用binary类型,例如:
select binary 'a' = 'a '
方法3:再添加一个length()条件,例如:
select col from table where col = 'a ' and LENGTH(col) = LENGTH('a ')