ibatis用数据库的表字段作参数,不起作用

ynynbgmwh 2011-01-03 01:09:12
需要是根据条件进行横向对比,可以根据名字或成绩或省份来进行分组查询:
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
...全文
133 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
cntaizi 2011-01-04
  • 打赏
  • 举报
回复
techcrunch每天回帖即可获得10分可用分!
tubage408 2011-01-04
  • 打赏
  • 举报
回复
select <isNotNull property="Group" > NAME as name, </isNotNull> count(*) as cnt from test t <isNotNull property="Group" >
group by NAME </isNotNull>
建议最好用上父元素dynamic
  • 打赏
  • 举报
回复
字段不能动态
ynynbgmwh 2011-01-04
  • 打赏
  • 举报
回复
第二个问题期待解决
ynynbgmwh 2011-01-04
  • 打赏
  • 举报
回复
第一个还真是这样。
[Quote=引用 3 楼 new_bird_0001 的回复:]
你的sql语句拿到数据库中也行不通的,你认为你给了一个字段名,其实数据库把它处理成字符串了,也就是这样:select 'PROVINCE',count(*) from 表 group by 'PROVINCE'
[/Quote]
new_bird_0001 2011-01-03
  • 打赏
  • 举报
回复
你的sql语句拿到数据库中也行不通的,你认为你给了一个字段名,其实数据库把它处理成字符串了,也就是这样:select 'PROVINCE',count(*) from 表 group by 'PROVINCE'
ynynbgmwh 2011-01-03
  • 打赏
  • 举报
回复
没人啊

51,396

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧