基本上我必须从 SQL 数据库中构建项目列表,但是用户可以选择对 7 个过滤器的任意组合进行过滤,也可以选择要排序的列以及按方向排序。
正如您可以想象的那样,这会以大量不同的组合进行编码,并且数据集非常大,所以我想避免在应用程序中这样做。
到目前为止,在我的存储过程中,我尝试过:
构建一个查询字符串,虽然这非常简单且易于遵循,但它会使应用程序对 SQL 注入开放,所以我宁愿避免这种情况。
使用一组
IF ELSE
语句来运行适当的参数化 SQL,但这很快就会变成一棵巨大的树,维护起来将是一场噩梦。
我不是第一个需要这样的解决方案的人,一定有比上述更好的方法吗?IF
另外作为一个附带问题,除了做很多s之外,是否有一种以参数化方式进行排序和按方向排序的好方法?