美文网首页程序员
MySQL查询条件字符串尾部空格问题

MySQL查询条件字符串尾部空格问题

作者: 宁静的猫 | 来源:发表于2020-08-30 15:16 被阅读0次

问题描述

最近工作上遇到一个坑,有测试同事在MySQL上造测试数据,在给一个varchar的字段赋值时,在字符串尾部多输入了一个空格。而我的代码在利用这个字段做查询时,又会把这一个带空格的数据给查了出来,导致后面测试的一系列问题。

比如有一张users表:

id(varchar) username(varchar)
1 test
2 test (尾部带一个空格)

sql语句:

select * from users where username = 'test'

此时会将id为1、2的两条user表数据都查询出来。这种情况,当遇到需要生成一个key为username,value为user的hashmap时,就会出现不可预知的bug。

问题原因

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

解决方法

1、在查询sql中使用like关键字

select * from users where username like 'test'

2、使用BINARY

select * from users where username = BINARY'test'

相关文章

  • MySQL查询条件字符串尾部空格问题

    问题描述 最近工作上遇到一个坑,有测试同事在MySQL上造测试数据,在给一个varchar的字段赋值时,在字符串尾...

  • MySQL ORDER BY 排序 IF 及 IN

    SQL的排序问题,他把符合条件的单独几行,可以放在查询结果的开始,或者查询结果的尾部通过的方法就是IN语句(也可以...

  • MySQL--基础二

    本节总结MySQL的筛选条件,聚合与分组,子查询,连接查询。 MySQL的筛选条件 MySQL中的比较运算符: 比...

  • 数据库篇

    1、mysql索引在什么情况下回失效1、查询条件包括or可能导致索引失效2、查询时字段类型是字符串,where时参...

  • mysql 查询

    mysql的查询、子查询及连接查询 一、mysql查询的五种子句 where(条件查询)、having(筛选)、g...

  • 【Python 3】高级特性

    切片 利用切片操作,实现一个trim()函数,去除字符串首尾的空格。 思路: 用相同的方法去除头部和尾部的空格; ...

  • 高并发下的mysql问题

    高并发下的mysql问题 mysql 重复插入问题 业务需要先根据where条件查询,如有数据命中对其进行修改否则...

  • LeetCode--最后一个单词的长度(python版)

    重点: 需要先strip字符串,防止尾部有空格的情况 字符串倒过来遍历,range使用方法;或者使用 reversed

  • MySql的查询总结

    Num01-->mysql基本查询 Num02-->mysql条件查询 Num03-->mysql聚合函数 Num...

  • MySQL语句实例

    字符串条件查询要加引号 导入数据库或数据表 source /root/admin.sql 或mysql -uroo...

网友评论

    本文标题:MySQL查询条件字符串尾部空格问题

    本文链接:https://www.haomeiwen.com/subject/fulesktx.html