多条件查询的一种简单实现方式
这些天在写一个权限模块,作为一个应用系统开发平台的一部分功能。
需要有多条件查询的功能,因为用的是xml配置sql的方式,所以常用的拼装sql的方式直接不用考虑。而且也存在sql注入的隐患。
然后另外一种就是排列组合的方式,将过滤参数进行排列组合,写成若干个sql语句。
我实在不好意思去写这样的代码……
所以我选择用存储过程来完成。在存储过程中动态生成sql语句,然后执行动态sql。将结果存放到表类型中。结果,平台目前只提供了游标存储结果的方式。我日!
然后改用动态游标一条一条读取结果集,发现太麻烦……
恰巧在网上看别人写的另外一种方式,解决了xml配置的问题
假如:有两个条件,一个日期@addDate,一个是@name
select * from table where (addDate = @addDate or @addDate is null) and (name = @name or @name = '')