我的XML里的SQL是这样的
<statments>
select * from TABLE WHERE {#1}<append condition="${checkbox}.EQ.N" id="#1">
  TABLE.a = TABLE.b
</append><append condition="${checkbox}.EQ.Y" id="#1">
  TABLE.a = TABLE.c
</append>
</statments>现在问题来了,当我的checkbox选中的时候,也就是checkbox的值是Y的时候,这个append条件可以插入到SQL中,但是当我不选checkbox的时候,这个append条件就进不去了,这是怎么回事啊?求高手指点!
 
注意:我已经在前台的checkbox的TrueValue和FalseValue属性里设置值分别为Y和N了,可为什么是Y的时候(也就是checkbox被选中的状态)可是执行append,在N的时候(也就是checkbox没有选中的时候)append条件就不执行呢?

解决方案 »

  1.   

    这个也太简单了吧,?
    拼接SQL不能再程序里面做吗?
      

  2.   

    sql只是查询语句。在任何数据库都支持的。夏MM 逛这里来了。
      

  3.   

    我觉得也应该在程序里判断拼查询条件才对。
    ==
    还有一定要这么写,前台传回的 “N”,估计这个xml或者针对checkbox还有其他属性可以设置的,你没设置上。
      

  4.   

    select * from TABLE WHERE 1=1 {#1}写成这样,就不会有问题了。报错应该是where子句只有关键字没有具体的条件语句造成的吧,给个永真的条件就行了。拼SQL经常有这样的问题。
      

  5.   

    还有一个地方,加上And :
    <statments>
    select * from TABLE WHERE 1=1 {#1}<append condition="${checkbox}.EQ.N" id="#1">
      and TABLE.a = TABLE.b
    </append><append condition="${checkbox}.EQ.Y" id="#1">
      and TABLE.a = TABLE.c
    </append>
    </statments>