Mars630 2022-08-22 23:44 采纳率: 100%
浏览 96
已结题

多条件查询时只能第一个条件可以为空,其他不能为空?

问题遇到的现象和发生背景

环境: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>

运行结果及报错内容

img

img

img

img

我想要达到的结果

需要实现多条件查询,各条件都可以为空,全空查询所有数据,谢谢!

  • 写回答

5条回答 默认 最新

  • Bigmuu 2022-08-23 11:12
    关注

    不改数据类型的话,前端就加个判断,这个值为空的时候,不传到后台就行,但是后台的int类型还是会默认为0,所以改类型是最好的解决办法

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(4条)

报告相同问题?

问题事件

  • 系统已结题 9月1日
  • 已采纳回答 8月24日
  • 创建了问题 8月22日

悬赏问题

  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测