mybatis 为什么没有智能忽略and

<iftest="dateStart!=nullanddateStart!=''">ANDcDate>=concat(#{dateStart},'00:00:00')</... <if test="dateStart != null and dateStart != ''">
AND cDate >= concat(#{dateStart},' 00:00:00')
</if>
<if test="dateEnd != null and dateEnd != ''">
<![CDATA[
AND cDate <= concat(#{dateEnd},' 23:59:59')
]]>
</if>
如果第一个条件为空的话 执行的sql语句 select * from table where AND cDate <= concat(#{dateEnd},' 23:59:59')
为什么没有把and 忽略掉呢
<where>
...
<if test="dateStart != null and dateStart != ''">
AND cDate >= concat(#{dateStart},' 00:00:00')
</if>
<if test="dateEnd != null and dateEnd != ''">
<![CDATA[
AND cDate <= concat(#{dateEnd},' 23:59:59')
]]>
</if>

</where>
如果最后一个查询条件不为空,之前的都为空,and 就忽略不掉,sql语句就会select * from table where and cDate <= 2014-01-01 23:59;59
展开
 我来答
hao321251
2014-02-26
知道答主
回答量:23
采纳率:0%
帮助的人:16.6万
展开全部
where 1=1
1=1 恒成立
统一后面的动态条件格式
and column1 = 122
and column2 = 222
and column3 = 333
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2014-02-24
展开全部
WHERE 1=1

后面根据需要的条件,再添加条件
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式