2013-03-06 87 views
1

例如,我在我的html页面中有4个下拉列表。如何添加过滤器功能?

DDL1 - OrgType 
DDL2 - Region 
DDL3 - Category 
DDL4 - Sector 

现在我该如何能够查询数据库并搜索1个DDL?为了让自己在这里明确的情景

Select * 
from table1 
where OrgTypeId = 1 
    AND RegionId = 1 
    AND CategId = 1 
    AND SectorId = 1 

现在,如果我只想搜索具有扇区ID = 1的部门?另一个DDL可以有什么价值?

+0

你用SQL Server和MySQL标记了这个,你使用了哪个数据库? – Taryn 2013-03-06 15:17:53

+0

对不起,,,用mysql – PeterS 2013-03-06 15:20:05

+0

即时消息,你就需要动态建立WHERE子句,只包括在下拉列表中选择一个值的字段,或至少砍了的where子句所以“未使用”域始终评估为真正。 – 2013-03-06 15:20:20

回答

0

只包括你的WHERE子句中所需的条件。您可以通过动态构建查询并仅在需要时插入条件,或将其设置为类似LIKE '%'IS NOT NULL的东西或根据您的模式始终返回true的东西来实现。

例子:

--Removing unnecessary criteria 
Select * 
from table1 
where SectorId = 1 

--Making unused criteria always evaluate to true 
Select * 
from table1 
where OrgTypeId >= 0 
    AND RegionId >= 0 
    AND CategId >= 0 
    AND SectorId = 1 

的第二个例子假设你的价值观都是ints,而且他们永远不能为null,但它可以适应绝大多数的任何情况。

+0

你能举个例子吗? – PeterS 2013-03-06 15:23:35

+0

@PeterS更新了我的答案。 – 2013-03-06 15:29:57

+0

啊好的...但这些值是我的下拉列表的值。我如何能够分配> = 0值作为我的ddl的值? – PeterS 2013-03-06 15:32:34