博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Mybatis中sql语句中的in查询,一定要判断null的情况
阅读量:4557 次
发布时间:2019-06-08

本文共 869 字,大约阅读时间需要 2 分钟。

不严谨的写法,可能会报错:in (),这种情况不符合mysql的语法。

    select from loanwhere LOAN_ID in 

<foreach item="item" index="id" collection="list" open="(" separator="," close=")">  

     #{item}  

要么在Mybatis的sql文件中,要么在Java程序中。

 

sql中的写法:

<select id="findByLoanIds" parameterType="List">

select *

from p2p_loan_variation where 1= 1

<if test="list != null and list.size>0">

and LOAN_ID in

<foreach item="item" index="id" collection="list" open="("

separator="," close=")">

#{item}

</foreach>

</if>

<if test="list==null or list.size==0">and 1=0</if>

</select>

Java中的写法:

  List<LoanVariation> list = null;

     if(ListUtils.isNotEmpty(loadIds){

      list =loanVariationDao.findByLoanIds(loanIds);

   }

  return list;

如果有多个Java方法调用dao mapper,在sql中写比较省事,毕竟只需要一次“参数检查”。

上面的写法是针对一个查询条件的,如果有多个查询条件,记得处理条件之间的关系,

比如 a=1 and b =2 or c=3.

如果有in条件,最好加上括号,(a=1) and (b =2 ) or ( c in ...)

转载于:https://www.cnblogs.com/qitian1/p/6463079.html

你可能感兴趣的文章
20171116 每周例行报告
查看>>
[C#] SHA1校验函数用法
查看>>
linux 下 VMware 提示Unable to change virtual machine power state:
查看>>
洛谷P1585 魔法阵
查看>>
线程 题待做
查看>>
PL/SQL可以连oracle,但是jdbc连不上 【转】
查看>>
使用 highlight.js 在网页中高亮显示java 代码 【原】
查看>>
[转]高颜值、好用、易扩展的微信小程序 UI 库,Powered by 有赞
查看>>
[转]SQL Server如何启用xp_cmdshell组件
查看>>
[转]微擎应用笔记3--manifest.xml文件使用说明
查看>>
Codeforces 1000C Covered Points Count 【前缀和优化】
查看>>
python高效读取文件、文件改写
查看>>
gulp
查看>>
pgsql查询优化之模糊查询
查看>>
不变模式
查看>>
matlab去云雾
查看>>
500lines项目简介
查看>>
Asp.net core logging 日志
查看>>
BOM浏览器对象模型
查看>>
Jq 遍历each()方法
查看>>