聊聊mybatis sql的括号问题
程序员文章站
2022-03-08 17:21:35
目录mybatis sql的括号问题mybatis多层括号(超过三层)解析不了mybatis sql的括号问题因为一段sql 要关联 a,b,c三个表,查三个表里的数据一开始写的是select * f...
mybatis sql的括号问题
因为一段sql 要关联 a,b,c三个表,查三个表里的数据
一开始写的是
select * from a,b,c
结果出来很多重复数据
而三个表是用id关联的
所以改成
select * from a where id in (select id from a,b,c 关联条件)
然后在mybatis里在写级联查询
把b,c表里的数据以数组的形式查出来
ok了 避免了数据重复一大堆
但是人说,级联查询,缺点: 查询速度慢
如果用exists 查的比较快
mybatis多层括号(超过三层)解析不了
加<![cdata[ ]]>即可,要么用存视图,应用在局部也可
<select id="selectfirm" resulttype="com.esteel.web.entity.cusfirmbean" parametertype="com.esteel.web.beanvo.cusfirmbeanvo"> <![cdata[ select a.*,a.customer_name as customername from tb_cus_firm a where a.market_key = #{marketkey} order by customer_key ]]> </select>
<select id="getemailcount" parametertype="map" resultmap="account1map"> select * from tb_cus_user where 1=1 <if test="email!=null and email!=''"> and email=#{email} </if> <if test="cus_trade_kind!=null and cus_trade_kind!=''"> and cus_trade_kind =#{cus_trade_kind} </if> <if test="cus_user_key!=null and cus_user_key!=''"> and cus_user_key <![cdata[<>]]> #{cus_user_key} </if> </select>
以上为个人经验,希望能给大家一个参考,也希望大家多多支持。
上一篇: 推荐一个Emoji框架
推荐阅读
-
Django 浅谈根据配置生成SQL语句的问题
-
简单聊聊SQL注入的原理以及一般步骤
-
SQL中WHERE变量IS NULL条件导致全表扫描问题的解决方法
-
将ACCESS转化成SQL2000要注意的问题
-
MyBatis从入门到精通(八):MyBatis动态Sql之foreach标签的用法
-
springboot+mybatis日志显示SQL的最简单方法
-
mybatis 的 dao 接口跟 xml 文件里面的 sql 是如何建立关系的?一步步解析
-
MySql版本问题sql_mode=only_full_group_by的完美解决方案
-
Mybatis中的动态SQL语句解析
-
简单聊聊SQL注入的原理以及一般步骤