java - 如何添加过滤功能?

标签 java mysql jsp jakarta-ee servlets

例如,我的 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

现在如果我只想搜索 sectorId = 1 的扇区怎么办?而另一个 DDL 可以有任何值(value)吗?

最佳答案

只在 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

上面的第二个示例假设您的值都是 int,并且它们永远不会为 null,但它可以适应大多数情况。

关于java - 如何添加过滤功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15251039/

相关文章:

动态 Web 应用程序 JSP 中的 java.lang.ClassNotFoundException

java - 连接常量字符串 VS StringBuffer

mysql - 如何在 mysql 中设置本地列表/元组变量

c# - dblinq 有多成熟?

mysql - 从 3 个不同的表创建 View ?

css - 无法在 Struts2 中应用外部 CSS

java - <%@ 在 JSP 中是什么意思?

java 2d 游戏 - 滞后和碰撞问题

java - OO游戏设计题

java - Mockito When() 不起作用