在 sql 中使用 And,Or 获得多个结果

Using And,Or in a sql for multiple results

我有一个文本框和 3 个下拉框,每个下拉框都有一个可以 select 编辑的项目。我希望能够实现两种过滤方案。

  1. 在文本框中键入一个值并在接下来的两个文本框中输入 select 个值后得到过滤结果,而忽略最后一个。

  2. 在文本框中输入值并在其他三个下拉框中输入 select 值后进行筛选以筛选出结果。如果我将 "and" 更改为 "or" 并将 "or"s 更改为 "and"s,我下面的代码一次只能生成一个结果。任何人都可以帮助修改或新查询以实现这两种情况吗?


CREATE PROC Spsearchproduct @searchWord1OnMasterPage NVARCHAR (50),
                            @searchWord2OnMasterPage NVARCHAR (50),
                            @searchWord3OnMasterPage NVARCHAR (50),
                            @searchWord4OnMasterPage NVARCHAR (50)
AS
  BEGIN
      SELECT product.NAME,
             price,
             seller,
             productstreetno.strno,
             productstreet.streetname
      FROM   product
             INNER JOIN productstreetno
                     ON product.streetnoid = productstreetno.idstreetno
             INNER JOIN productstreet
                     ON product.streetid = productstreet.idstreet
             INNER JOIN productstate
                     ON stateid = productstate.idstate
             INNER JOIN productcity
                     ON cityid = productcity.idcity
      WHERE  product.NAME LIKE '%' + @searchWord1OnMasterPage + '%'
             AND productstate.statename LIKE '%' + @searchWord2OnMasterPage + '%'
             AND ( ( productcity.cityname LIKE '%' + @searchWord3OnMasterPage + '%' )
                    OR ( productstreet.streetname LIKE '%' + @searchWord4OnMasterPage + '%' )
                    OR ( productstreet.streetname IS NULL ) )
             AND ( ( productcity.cityname LIKE '%' + @searchWord3OnMasterPage + '%' )
                    OR ( productstreet.streetname LIKE '%' + @searchWord4OnMasterPage + '%' )
                    OR ( productstreet.streetname IS NULL ) )
  END  
Product.Name Like '%' + @searchWord1OnMasterPage + '%' and
    ProductState.StateName Like '%' + @searchWord2OnMasterPage + '%' and
    (ProductCity.CityName Like '%' + @searchWord3OnMasterPage + '%' )and
    ((ProductStreet.StreetName Like '%' + @searchWord4OnMasterPage + '%') or
    (@searchWord4OnMasterPage = 'Select Street'))