Java mysql的搜索条件

Java mysql的搜索条件,java,mysql,Java,Mysql,假设我有一个URL,它由3个参数a、B、C组成,客户机可以将任何参数作为null发送给我,或者所有参数都可以为null 现在,如果参数不为null,我需要找到一种检索记录的方法 假设A不是空的,根据A检索。如果B不是空的,根据B检索。如果C不是空的,根据C检索 或 如果A和B不为null,则基于A和B检索 比如A='something'和B='something'的位置 如果A和C不为空,则根据A和C检索。如果C和B不为空,则根据C和B检索。 或 如果一切都不是空的,退休人员基于这意味着像A='

假设我有一个URL,它由3个参数a、B、C组成,客户机可以将任何参数作为null发送给我,或者所有参数都可以为null

现在,如果参数不为null,我需要找到一种检索记录的方法

假设A不是空的,根据A检索。如果B不是空的,根据B检索。如果C不是空的,根据C检索

如果A和B不为null,则基于A和B检索

比如A='something'和B='something'的位置

如果A和C不为空,则根据A和C检索。如果C和B不为空,则根据C和B检索。 或

如果一切都不是空的,退休人员基于这意味着像A='something'和B='something'和C='something'

现在我可以做的一个方法是创建大量的switch case,其他方法是使用mysql查询,如下所示


除了这两种方法,还有其他方法吗?

有一种很好的方法——不要在MySQL中使用逻辑。因为你用Java标记了它,所以你可以用Java解析这个逻辑参数,然后用你生成的查询MySQL。通过逻辑参数传递,你的意思是检查不为null的变量,并相应地构造thw查询?如果这就是你的意思,那么如果参数的数量增加了,那么只需要考虑我需要做的条件检查的数量,这就是我的意思,如果你是以编程方式做的,那么你就不必关心是传递1个还是100000个参数。这就是为什么我们可以使用所有这些编程语言。我们必须找出一个模式,让计算机为我们做艰苦的工作。好的,你能给我提供一些java的例子,除了使用switch case吗。我只是提供概念,而不是实现。获取URL,将其解析为所需格式,然后循环遍历参数,检查它们是否满足您的条件,如果满足,则将它们添加到stack/list/which,是吗
SELECT a.*,l.* FROM TabelA a INNER JOIN TableL l ON a.A= l.A WHERE
(
 a.A= IFNULL(NULL,a.A) AND
 a.B= IFNULL(NULL,a.B) AND
 a.C= IFNULL(NULL,a.C)
)
String query="SELECT a.*,l.* FROM TabelA a INNER JOIN TableL l ON a.A= l.A WHERE 1=1";
if (param1){
   query+=" AND Something="+param1;
}
...