服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - Java教程 - 基于mybatis like %%的问题

基于mybatis like %%的问题

2022-01-25 01:03intelrain Java教程

这篇文章主要介绍了mybatis like %%的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

mybatis like %%问题

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<select id="getMaxNotOnlineInfoByConditon" resultType="com.shishike.susie.entity.CustomConfirmInfo">
 
SELECT *
FROM t_customconfirminfo
WHERE (if(#{pduName,jdbcType=VARCHAR} IS NULL, 0 = 0, pduname = #{pduName,jdbcType=VARCHAR})
   AND if(#{moduleName,jdbcType=VARCHAR} IS NULL, 0 = 0, modulename = #{moduleName,jdbcType=VARCHAR})
   AND if(#{env,jdbcType=VARCHAR} IS NULL, 0 = 0, confirminfo = #{env,jdbcType=VARCHAR})
   AND if(#{ossAddress,jdbcType=VARCHAR} IS NULL, 0 = 0, ossaddress = #{ossAddress,jdbcType=VARCHAR})
   AND if(#{branch,jdbcType=VARCHAR} IS NULL, 0 = 0,  branch like concat(concat('%',#{branch,jdbcType=VARCHAR}),'%'))
   AND if(#{confirmId,jdbcType=BIGINT} IS NULL, 0 = 0, id > #{confirmId,jdbcType=BIGINT})
   AND onlineinfo is null)
ORDER BY CREATED DESC
LIMIT 1
</select>

mybatis 关于like的处理

1、利用"%"对入参进行拼接

2、SQL语句字符串拼接

?
1
SELECT * FROM tableName WHERE name LIKE CONCAT(CONCAT('%', #{text}), '%');

3、bind标签

?
1
2
3
4
5
6
7
8
9
10
<select id="findUserByFuzzyEmail" resultMap="BaseResultMap"
        parameterType="java.lang.String">
        select id,username,email,status,createtime,updatetime from tb_user
        <bind name="pattern" value="'%'+_parameter.getEmail() +'%'" />
        <where>
            <if test="email != null and email != ''">
                email like #{pattern}
            </if>
        </where>
    </select>

以上为个人经验,希望能给大家一个参考,也希望大家多多支持服务器之家。如有错误或未考虑完全的地方,望不吝赐教。

原文链接:https://blog.csdn.net/intelrain/article/details/81145901

延伸 · 阅读

精彩推荐