目录

一、背景

二、解决方案一:使用转义字符

三、解决方案二:

四、参考文献


一、背景

项目中有一个联合查询的SQL一直很慢,总感觉无法再继续优化了,实际上还是有继续优化的方案的。具体方案如下:1、将判断条件尽可能写在最里面的查询(如果需要的话);2、将is null 修改为不等于0。实施第二个方案的过程中发现,xml文件中直接写status<>0,报错,故寻找解决方案。

二、解决方案一:使用转义字符

大于号                       >       &gt;

小于号                       <       &lt;

大于等于号              >=     &gt;=

小于等于号              <=     &lt;=

不等于                        &lt;&gt;

与                                 &      &amp;

单引号                       "       &apos;

双引号                       '        &quot;

示例:

<select id="findByUserId" resultMap="BaseResultMap" parameterType="java.lang.String" >
  select
  <include refid="Base_Column_List" />
  from t_user
  where user_id = #{userId} and status &lt;&gt; 0
</select>

三、解决方案二:<![CDATA[  ]]>

大于等于 <![CDATA[ >= ]]>

小于等于 <![CDATA[ <= ]]>

不等于 <![CDATA[ <> ]]>

示例:

<select id="findByUserId" resultMap="BaseResultMap" parameterType="java.lang.String" >
    select
    <include refid="Base_Column_List" />
    from t_user
    where user_id = #{userId} and status <![CDATA[ <> ]]> 0
  </select>

四、参考文献

1、mybatis在mapper.xml中处理大于、小于、不等于号的方法

mybatis在mapper.xml中处理大于、小于、不等于号的方法_gao505的博客-CSDN博客_mybatis xml 不等于

2、Mybatis中大于,小于,不等于等特殊符号的写法

https://blog.csdn.net/qq_29212701/article/details/83012104

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐