MSSQL·WHERE过滤含空格字符串的坑
阅文时长 | | 0.28分钟 | 字数统计 | | 456.8字符 |
主要内容 | | 1、引言&背景 2、情景还原&解决方案 3、声明与参考资料 | ||
『MSSQL·WHERE过滤含空格字符串的坑』 | |||
编写人 | | SCscHero | 编写时间 | | 2022/1/18 PM8:14 |
文章类型 | | 系列 | 完成度 | | 已完成 |
座右铭 | 每一个伟大的事业,都有一个微不足道的开始。 |
一、引言&背景 完成度:100%
a) 应对问题
在使用MSSQL,使用WHERE关键字过滤"末尾含空格字符串"和"末尾不含空格的字符串"时,返回了相同的结果集。
b) 应用场景
- WHERE关键字过滤"末尾含空格字符串"和"末尾不含空格的字符串"时。
c) 分析思路
个人理解是由于WHERE过滤的字符串做了Trim空格的处理。
二、情景还原&解决方案 完成度:100%
a) 情景还原
SELECT COUNT(1) FROM TestTable WHERE testField = 'X' COLLATE Chinese_PRC_CS_AS --WHERE筛选不带空格:结果错误
SELECT COUNT(1) FROM TestTable WHERE testField = 'X ' COLLATE Chinese_PRC_CS_AS --WHERE筛选带空格:结果错误
SELECT COUNT(1) FROM TestTable WHERE testField LIKE 'X' COLLATE Chinese_PRC_CS_AS --LIKE筛选不带空格:结果正确
SELECT COUNT(1) FROM TestTable WHERE testField LIKE 'X ' COLLATE Chinese_PRC_CS_AS --LIKE筛选带空格:结果正确
b) 解决方案
使用LIKE代替WHERE做筛选。
三、声明与参考资料 完成度:100%
原创博文,未经许可请勿转载。
如有帮助,欢迎点赞、收藏、关注。如有问题,请评论留言!如需与博主联系的,直接博客私信SCscHero即可。