欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

mybatis 模糊查询与函数连用%需不需要拼接问题

程序员文章站 2022-07-13 16:06:34
...

mybatis 模糊查询与函数连用%需不需要拼接问题

1,模糊查询最好用$,这样在和比如trim()等函数连用的时候不必用||把%分开

2,用#这样在输入文字参数的时候会自动加上''就不会报错,这样的话就可要用||

 

<select id="getWhLogList" parameterType="map" resultType="map">

  select a.*,c.*

  from SCM_EGESYSLOG a left join opm_user b on a.operid=b.id left join TB_CUS_MARK c on b.organid=c.market_key where 1=1

  <if test="organId !=null and organId!=''">

  and c.market_key=#{organId} and c.market_key is not null

  </if>

  <if test="type !=null and type!=''">

  and type=#{type}

  </if>

   <if test="key !=null and key!=''">

  and ( (lower(trim(operDesc))  like '%'||lower(trim(#{key}))||'%') or (lower(trim(operName)) like '%'||lower(trim(#{key}))||'%' ))

  </if>

  <if test="begindate !=null and begindate!=''">

  and operDate <![CDATA[>=]]> to_date(#{begindate},'yyyy-mm-dd hh24:mi:ss')

  </if>

  <if test="endDate !=null and endDate!=''">

  and operDate <![CDATA[<=]]> to_date(#{endDate},'yyyy-mm-dd hh24:mi:ss')

  </if>

   <if test="userID !=null and userID!=''">

   and lower(trim(operId))=lower(trim(#{userID})) 

  </if>

  <if test="userName !=null and userName!=''">

   and lower(trim(operName))  like '%'||lower(trim(#{userName}))||'%'

  </if>

  order by operDate desc

  </select>

 

 

<select id="getLogList" parameterType="map" resultMap="BaseResultMapVo">

   SELECT t.LOG_KEY,

       t.OPM_TIME,

       t.OPM_DETAIL,

       t.WORK_MODULE,

       NVL(T1.MAN, T2.CUSTOMER_NAME) MAN,

       t1.CUS_USER_ID

   FROM TB_CLIENT_LOG t, TB_CUS_USER t1, TB_CUS_FIRM T2

   where t.CUS_USER_KEY = t1.CUS_USER_KEY AND

       T.CUSTOMER_KEY = T2.CUSTOMER_KEY

    <if test="CUS_USER_ID!=null and CUS_USER_ID!=''">

     AND lower(trim(T1.CUS_USER_ID))  LIKE lower(trim('%${CUS_USER_ID}%'))

    </if>

    <if test="START_ADD_TIME!=null and START_ADD_TIME!=''">

      AND to_char(T.Opm_Time,'yyyy-mm-dd') <![CDATA[>=]]> #{START_ADD_TIME}

    </if>

    <if test="END_ADD_TIME!=null and END_ADD_TIME!=''">

       AND to_char(T.Opm_Time,'yyyy-mm-dd') <![CDATA[<=]]> #{END_ADD_TIME}

    </if>

     order by t.OPM_TIME DESC

  </select>

 

相关标签: mybatis