问题描述
有如下数据表ID姓名编号1张三0012张三0023张三0034李四0015李四002要求检索数据时只显示人员的最后一次的编号,例ID姓名编号1张三0035李四002数据库为mysql+hibernate3.5,使用session.createQuery("")如何实现?显示结果按ID倒序排列
解决方案
解决方案二:
sql里加desc?
解决方案三:
使用distinct关键字,记得要指明要按照哪个字段过滤,比如你上面的按照姓名进行过滤,然后用groupby分组查询。
解决方案四:
给个完整的代码先,session.createQuery("")这段怎么写?qy=session.createQuery("fromJgdBeanjgdwherejgd.jgdnumlike?groupbyjgdnumorderbyjgdiddesc");qy.setParameter(0,"%"+getModel().getJgdnum()+"%");jgdlists=qy.list();按照楼上说的,我的这段代码每次查寻的结果都是ID姓名编号1张三0014李四001如何写才能实现ID姓名编号3张三0035李四002要求完整的代码
解决方案五:
groupbyjgdnumhavingmax(jgdid)
解决方案六:
你id什么类型?字符串类型的吧,字符串好像不能比大小吧
解决方案七:
你用的什么数据库?如果是2000的话可以借助于Inserted表
解决方案八:
这种groupby分组和max函数的应用最好不要用HQL,用底层的SQL反而高效和直观得多selectmax(ID),姓名,编号fromtablegroupby姓名编号
解决方案九:
qy=session.createQuery("fromJgdBeanjgdwherejgd.jgdnumlike?groupbyjgdnumorderbyjgdiddesc");qy.setParameter(0,"%"+getModel().getJgdnum()+"%");jgdlists=qy.list();有在这个语句中测试过的么?测试通过可得满分