记一次 Mysql 查询条件中字符串尾部空格问题
yuuki Lv5

记一次 Mysql 查询条件中字符串尾部有空格也能匹配上的问题😇,Bug一个接一个只因为自己太菜。

表结构

TABLE fruit

id name
1 西瓜
2 西瓜(一个空格)
3 西瓜(二个空格)

SQL

1
2
select * from person where `name` = "西瓜"
select * from person where `name` = "西瓜 "

这两条sql都可以把3条数据全部查询出来。

原因

MySQL 校对规则属于PADSPACE,会忽略尾部空格,针对的是 varchar char text …… 等文本类的数据类型,此为 SQL 规范。无需要设置也无法改变

PS: 至于怎么解决我相信你自有妙计

 评论