MySQL查询条件中尾部带有空格会被忽略

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 ')

觉得内容还不错?打赏个钢镚鼓励鼓励!!👍