SQL模糊查询屏蔽"%"的影响

在做信息管理系统中,如果使用存储过程来屏蔽SQL注入的话,可以成功的输入各种字符而不会发生数据库溢出错误,但是在进行模糊查询的时候仍然不能查询到"%"。
解决这个问题的方法就是使用转义查询。

在SQL中,使用这样的命令可以转义查询:
Select * from 表名 where 列名 like '%\%%' escape '\'
这样查出的记录就是所有包含“%”的记录了。
下面的工作就简单了,在C#中,向数据库传查询关键词的时候先用字符串替换把所有的"%"替换成"\\%"(注意C#中,'\'需要使用'\\'来进行转义),并且把查询语句后面加上"escape '\'"就可以成功的查询到"%"了。
posted @ 2008-09-04 08:44  苍月  阅读(366)  评论(0)    收藏  举报