java 中的 mybatis 的mysql 搜索写法

本文探讨了在Java使用MyBatis进行MySQL查询时,如何利用IF判断来优化搜索条件。主要条件始终生效,而IF内的条件则在特定情况下(如列表显示时)才加入查询。通过FIND_IN_SET实现IN操作,并结合DISTINCT和GROUP BY去除重复数据,提高了查询效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

当where条件成立时,走 if 判断,当其中某些条件不成立时,则跳过 if 判断。下图中的第一个where条件是该sql 的主要条件,每一次查询都会走它。if 中的内容则是搜索查询的条件,在列表显示时为不必要条件。

<select id="queryStorageRack"
        resultType="org.jeecg.modular.storagerack.entity.StorageRack"
        parameterType="org.jeecg.modular.storagerack.entity.StorageRack">
    SELECT
        wsr.id,wsr.code,wsr.status,wsr.enable,wsr.title,wsr.site,
        wse.storage_rack_id,wse.husbandry_bureau_name,wse.apply_code
    FROM
        (SELECT * FROM wd_storage_rack ) wsr,
        (SELECT * FROM wd_sample_extend) wse
    WHERE FIND_IN_SET(wsr.id, wse.storage_rack_id)
    <if test="storageRack.title != null and storageRack.title != ''">
        and wsr.title like concat('%', #{storageRac
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值