好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

基于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

查看更多关于基于mybatis like %%的问题的详细内容...

  阅读:10次