问题遇到的现象和发生背景
环境:IDEA,mysql,springboot,layui
问题:多条件查询有两个条件,要求可以不输入,但运行时第一个可以留空,但第二个不能为空。查询模块是一个项目里别的模块复制过来再改的,有关的部分都已复制已改过,但结果就不一样。原模块可以实现各查询条件为空,但复制过来的不能实现。如下:
问题相关代码,请勿粘贴截图
</fieldset>
<blockquote class="layui-elem-quote">
<form class="layui-form" method="post" id="searchFrm">
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">患者姓名:</label>
<div class="layui-input-inline">
<input type="text" name="reportName" autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">患者ID:</label>
<div class="layui-input-inline">
<input type="text" name="reportId" autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-inline">
<button type="button" class="layui-btn layui-btn-normal layui-icon layui-icon-search" id="doSearch">查询</button>
<button type="reset" class="layui-btn layui-btn-warm layui-icon layui-icon-refresh">重置</button>
</div>
</div>
</form>
</blockquote>
<select id="patInfo" resultType="ReportVo">
select r.reportId,r.reportName,r.carid,r.phone,r.sex,r.age,p.department,d.doctorName,r.price,e.type,r.time,r.users,r.state,e.registeredid dregisteredid,d.doctorid ddoctorid,p.departmentId ddepartmentid
from report r,doctor d,registeredtype e,departments p
<where>
r.doctor=d.doctorId and d.registeredid=e.registeredId and r.department=p.departmentId
<if test="reportName!=null and reportName!=''">
and r.reportName like concat('%',concat(#{reportName},'%'))
</if>
<if test="reportId!=null and reportId!=''">
and r.reportId like concat('%',concat(#{reportId},'%'))
</if>
</where>
</select>
运行结果及报错内容
我想要达到的结果
需要实现多条件查询,各条件都可以为空,全空查询所有数据,谢谢!