我有一个包含这些列的表Product
ProductName,
Description,
Manufacturer,
Product Code,
Technology,
Address,
Country,
City,
Length
我想用这些标准搜索所有这些字段
我将传递的另一个参数是否使用AND / OR操作
我们可以使用任何搜索条件和AND \ OR操作
搜索6列where子句中的条件将是这样的
WHERE (ProductName = @ProductName) AND (Country Like @Country +%) OR
(ManufacturerLikre(Ends) '%' + @Manufacturer ) AND (Length < (Greater) @Length)
因此用户可以根据上述标准输入6个条件。
你能帮忙获得where子句
的逻辑吗?答案 0 :(得分:0)
也许最简单的解决方案是使用以下格式在前端代码中动态构建它:
where whereClause1 AND / OR whereClause2 AND / OR whereClause3 ... etc
用相关的sql语法和每个AND / OR替换whereClause1等。为了处理所有可能的AND / OR组合,您需要提供一种使用括号对where子句进行分组的方法,否则它会限制可能的组合范围,并假设用户用户理解AND和OR运算符的优先级。
此外,在根据用户输入构建查询时,您需要了解可能的SQL注入攻击。
答案 1 :(得分:0)
如果我的问题是正确的,我认为你想要结合条件然后使用 OR
WHERE ((ProductName = @ProductName) AND (Country Like @Country +%)) OR
^(Extra Brackets to combine)
((ManufacturerLikre(Ends) '%' + @Manufacturer ) AND (Length < (Greater) @Length))
^(Extra Brackets to combine)