mysql的搜索条件

时间:2014-08-21 12:52:31

标签: java mysql

假设我有一个由3个参数(A,B,C)组成的URL,客户端可以将任何参数发送给我,或者所有参数都可以为null。

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

假设A不是基于A的空检索。如果B不是基于B的空检索。如果C不是基于C的空检索。

如果A和B不是基于A和B的空检索

(类似于where A='something' AND B='something')。

如果A和C不是基于A和C的空检索。如果C和B不是基于C和B的空检索。 或

如果所有内容都不是null,则基于( means like where A='something' AND B='something' AND C='something')

退出

现在我可以做的一种方法是创建很多切换案例其他方法就是使用像这样的mysql查询

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)
)

除了这两种方式还有其他方法

1 个答案:

答案 0 :(得分:0)

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;
}
...