ibatis用数据库的表字段作参数,不起作用
需要是根据条件进行横向对比,可以根据名字或成绩或省份来进行分组查询:
select <isNotNull property="Group" > #Group:VARCHAR# as name, </isNotNull> count(*) as cnt from test t <isNotNull property="Group" >
group by #Group:VARCHAR# </isNotNull>
用log4j看出的
select ? as name, count(*) as cnt from test t group by ?
Parameters: [PROVINCE, PROVINCE]
结果是NAME=PROVINCE, CNT=5,相当把整个库里的数据量取出来了
想要的结果是
有两个省的
NAME=湖北, CNT=4
NAME=广东, CNT=1
是不是不支持ibatis这方面的机制
另外还发现select <isNotNull property="Group" > #Group:VARCHAR# as name, </isNotNull> count(*) as cnt from test t
如果第一次调用这语句的话,没有group属性,也就是SQL:select count(*) as cnt from test t,然后再次查询,又有group属性,但返回的还是select count(*) as cnt from test t,也就是结果map里面的KEY只有一个,就是根据第一次来,是不是第一次查询就初始化了?如果反着来,则是两个key