mybatis sql语句中 like in() 长度为0或null的情况
Posted magicya
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mybatis sql语句中 like in() 长度为0或null的情况相关的知识,希望对你有一定的参考价值。
mybatis sql语句中 like in() 长度为0或null的情况
比如:
select * from A
where colName LIKE IN
<foreach collection="moCodeList" item="item" index="index" open="(" close=")" separator=",">
#item
</foreach>
想要查询 colName LIKE IN ( 列表) 条件下的数据,如果列表 为null 或者长度为0
语句就变成了 colName LIKE IN ()
这样的语法是不对的
改进
select * from A
where colName LIKE IN
<if test="moCodeList != null and moCodeList.size>0">
<foreach collection="moCodeList" item="item" index="index" open="(" close=")" separator=",">
#item
</foreach>
</if>
<if test="moCodeList==null or moCodeList.size==0">
and 1=0
</if>
用if 标签 来区分,如果LIKE IN 条件里的列表为0 那么,走条件 1=0
以上是关于mybatis sql语句中 like in() 长度为0或null的情况的主要内容,如果未能解决你的问题,请参考以下文章
sql语句中条件查询里in、like、及=三个的效率怎么样?
SQL Server参数化SQL语句中的like和in查询的语法(C#)