SQL---LIKE中的‘[’或‘]’

最近这两天在改公司项目中的BUG,遇到一个问题很奇怪。如下:

<span style="font-size:14px;">SELECT TOP 5 [Name] FROM [tblUt] ORDER BY [Created] DESC</span>

<span style="font-size:14px;">SELECT TOP 5 [Name] FROM [tblUt] <span style="color:#FF0000;"><strong>WHERE [Name]</strong></span> <span style="color:#FF0000;"><strong>LIKE '[</strong>%<strong>'</strong> </span> ORDER BY [Created] DESC(结果为空)

<img src="https://img-blog.csdn.net/20150130104035062?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMzAyODExMA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />

</span>
<span style="font-size:14px;">SELECT TOP 5 [Name] FROM [tblUt] <strong><span style="color:#FF0000;">WHERE [Name]</span></strong> <span style="color:#FF0000;"><strong>LIKE '[[]</strong>%<strong>'</strong></span>  ORDER BY [Created] DESC

<img src="https://img-blog.csdn.net/20150130104339888?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMzAyODExMA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />

</span><pre name="code" class="sql"><span style="font-size:14px;">SELECT TOP 5 [Name] FROM [tblUt] <span style="color:#FF0000;"><strong>WHERE [Name]</strong></span> <span style="color:#FF0000;"><strong>LIKE '</strong>%<strong>[]]'</strong></span>  ORDER BY [Created] DESC(结果为空)</span>



<span style="font-size:14px;">SELECT TOP 5 [Name] FROM [tblUt] <span style="color:#FF0000;"><strong>WHERE [Name]</strong></span> <span style="color:#FF0000;"><strong>LIKE '</strong>%<strong>]'</strong></span>  ORDER BY [Created] DESC</span>


 

查了些资料了解到‘[’、‘]’在SQL的LIKE中属于特殊字符,需要特别对待一下。所以才会出现上述情况。
除了‘[’、‘]’之外,在LIKE中还有一些特殊的字符以及其处理方法,如下:

</pre><img src="https://img-blog.csdn.net/20150130105408335?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMzAyODExMA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" /><div align="center"><pre name="code" class="sql">SET @strWHERE=@strWHERE+' LIKE '''+'[[]'+@strSearchString1+'[]'+@strSearchString2+'%'''

如果在拼SQL语句的时候出现类似于上述情况的话,只需要将第一个’[‘替换为’[[]‘之后的’[‘替换为‘[]’即可。不需要写成如下的语句:

SET @strWHERE=@strWHERE+' LIKE '''+'[[]'+@strSearchString1+'[[]'+@strSearchString2+'%'''

这样的话结果中会多出一个‘[’。

如果遇到这种情况一定要谨记。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值