我正在使用asp.net MVC2和NHibernate开发一个web应用程序,并且在我的页面中对数据(某个类别中的产品)进行分页,但是这些数据是随机的,所以,我使用hql语句链接如下:
string hql = "from Product p where p.Category.Id=:IdCategory order by rand()";它工作得很好,但当我翻页时,有时相同的产品会出现在第一页、第二页等……页,因为它是按rand()排序的。
有没有办法通过固定的周期(时间内部)进行随机排序?或者任何解决方案?
发布于 2010-05-27 01:37:55
将随机数生成器设置为种子:
order by rand(123)我建议使用会话范围的随机数作为种子。这样,页面不会突然针对单个用户进行重新排序,但仍然会针对每个用户进行不同的排序。
发布于 2010-05-27 01:34:36
我不明白你为什么故意把数据随机化。如果没有特定的顺序,为什么不直接按主键排序呢?
https://stackoverflow.com/questions/2915333
复制相似问题