我的情景是前台会传入2个查询的条件,如果不输入的话就是
where name like'%%' and method like '%%'
这个时候我想数据库查询的时候把所有的都查询出来(包括null),但是上面的语句是不能查询null的,null的是xxx is null;
如果都有输入的话就是where name like'%xx%' and method like '%xx%'
,这个是没有问题的,那么我怎么把这两种情况结合起来写呢(细分的话可能不止这两种情况,2个查询条件可以是一个有条件一个没条件,都有条件亦或是都没有条件,3种?)
我上网查了一下,有2中解决方案
1)当like不为空时才加滤条件
2) where isnull(name,case when '查询变量'=='0' then 1 else '0' end)
第一种比较好理解,在java后台改,可我的改动会比较大,第二种我不太理解,看样子是改写sql语句,我想用第二种,我的sql语句该怎么改??拜谢~
SELECT
FROM
WHERE
AND NAME LIKE concat(
写了一个name的排查,另外一个你自己看嘛,应该不是最好的解决方案