sqlserver2008中使用escape做通配符转义

web系统中一般都会在前端对特殊字符进行过滤处理,防止数据查询导致的页面和数据问题。但是也有一些特殊的情况,比如说业务字段里会包含某些特殊字符,比如"%"、"["、"]"等,这时候如果想象查询出数据就需要使用到escape关键字对特殊字符进行转义。

escape指定的字符后面紧挨着的第一个字符被看作是普通字符而非通配符,如果转义符后面的字符不是通配符,则将放弃转义符并将该转义符后面的字符作为该模式中的常规字符处理。

假设相对如下user表进行查询

1. 查询username字段中包含%的数据
select * from user u where u.username like ‘%%%’; --查询出所有数据
select * from user u where u.username like ‘%%%’ escape ‘’; --查询出id=1、2

2. 查询username字段中包含’['的数据
select * from user u where u.username like ‘%#[%’ escape ‘#’; --查询出id=3、4、5
select * from user u where u.username like ‘%#[校%’ escape ‘#’;–查询出id=5


------------本文结束感谢您的阅读------------

更多推荐

sql语句中escape的用法