Mybatis fuzzy query and function use together% need splicing problem
1. Fuzzy query is best to use $, so that you don't have to use || to separate % when it is used with functions such as trim().
2. Use # so that '' will be automatically added when inputting text parameters, so no error will be reported. In this case, you can use ||
<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>