【oracle】rownum位置不同导致结果不同
今天信息编辑发布了一条首页新闻,但是并没有在首页显示。首先说明一下,首页的展示4个新闻模块,是依据顺序标记来获取的。
解决过程:1、现在后台查看新闻列表,发现新闻列表有顺序字段有1、2、2、3、4...,证明数据发布的没有问题,正常来说,应该取1、2、2、3这四条,但是结果却是1、2、2、4;
2、检查控制器方法和service都是没有问题的,有问题的只能是mapping文件;
原Sql命令:select id,title,img,description from article where weight>0 and rownum<=4 order by weight asc;(xml是#{}传递参数的)
该Sql命令:select id,title,img,description from (select id,title,img,description from article where weight>0 order by weight asc) where rownum<=4;
注意:在plsql中将两种命令进行测试,发现检索的数据是不同的,将rownum数值增大,发现检索出的数据排序不一样,第二种是项目所需的。(why? i don't know)