sql 双重排序 翻页重复问题 在线等~~~

jiangmurong 2011-05-23 03:29:51
遇到一个这样的问题,有几个排序字段,都不是唯一值,排序后,翻页出现重复项。

加上ID 唯一值排序,也是一样,翻页出现重复项。帮帮忙啊~~~~

PS:发在sql这个版块,建议发到这来,可以去接分

http://topic.csdn.net/u/20110523/15/1003e88e-bd19-4568-b04a-5c35683515e2.html

<a href="default.aspx?classid=4&keywords=<%=keyword%>&userid=<%=tuserid%>&sort=2">按成单日期排序</a>



string sort = Request["sort"];
string orderstr = "id";
switch (sort)
{
case "1":
orderstr = "recorddate";
break;
case "2":
orderstr = "finishyear desc,finishmonth desc,adddate desc,id";
break;
default:
orderstr = "id";
break;
}







string page = Request["page"];
Page PageClass = new Page(tables, "id,username,tel,email,(select top 1 tname from customer_users where id=" + tables + ".userid) as tname,(select top 1 id from customer_record where comid=" + tables + ".id) as reid,price,adddate,finishyear,finishmonth", wheres, orderstr, "1", "id", "" + urls + "?keywords=" + keyword + "&classid=" + classid + "&sort=" + sort + "&userid=" + tuserid + "&adddate=" + adddate + "&page=", 30, page, "");
PageClass.Get_Content(newslist);
pagestring.Text = PageClass.Get_Page();


...全文
127 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
jiangmurong 2011-05-27
  • 打赏
  • 举报
回复
结帖~~~~~~~~~~~~
chensi05 2011-05-25
  • 打赏
  • 举报
回复
sql语句里同时存在where和top语句的时候,并且where条件列不是合适的索引,程序执行的是全表扫描,首先是查找符合where条件的记录,而这里的top限制形同虚设。

我感觉你直行top那里都会出现重复的
jiangmurong 2011-05-25
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 chensi05 的回复:]
sql语句里同时存在where和top语句的时候,并且where条件列不是合适的索引,程序执行的是全表扫描,首先是查找符合where条件的记录,而这里的top限制形同虚设。

我感觉你直行top那里都会出现重复的
[/Quote]

那我其他的没有出现问题呢
bloodyGhost 2011-05-24
  • 打赏
  • 举报
回复
不知道用distinct行不?建议啊,感觉问题不应该那么简单
cjh200102 2011-05-24
  • 打赏
  • 举报
回复
你加主键也是这样?
SQL语句在数据库下数据正确吧
jiangmurong 2011-05-24
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 xfxlylove 的回复:]
http://www.itpub.net/viewthread.php?tid=850977&extra=&page=1
进这网站看看,对你有帮助的。
[/Quote]

是啊,我在网站查了,我加了ID唯一值啊
case "2":
orderstr = "finishyear desc,finishmonth desc,adddate desc,id";
break;

但是还是没有效果啊
jiangmurong 2011-05-24
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 xfxlylove 的回复:]
你们的数据库用的是oracle?
[/Quote]

不是的,是sql的
xiaoyuan402 2011-05-24
  • 打赏
  • 举报
回复
你要把order by的语句传到sql里。取数据的order by 跟排序的order by要一样的就不会了
chengjia2284 2011-05-24
  • 打赏
  • 举报
回复
有可能是翻页的时候条件不太准确导致的。
xfxlylove 2011-05-24
  • 打赏
  • 举报
回复
http://www.itpub.net/viewthread.php?tid=850977&extra=&page=1
进这网站看看,对你有帮助的。
xfxlylove 2011-05-24
  • 打赏
  • 举报
回复
你们的数据库用的是oracle?
xfxlylove 2011-05-24
  • 打赏
  • 举报
回复
问题解决了么有呵?
jiangmurong 2011-05-24
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 qgqch2008 的回复:]
去重复值?
[/Quote]

数据库没有重复值的,是显示了重复项
qgqch2008 2011-05-23
  • 打赏
  • 举报
回复
去重复值?
jiangmurong 2011-05-23
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 xfxlylove 的回复:]
确定问题出在什么地方,如果这样可以显示的话,你把你的SQL语句查询出数据看数据是否正确。否则的话就应该不是排序引起的错误。
[/Quote]

是排序引起的。
不排序时,是正常的,翻页不会有重复值
xfxlylove 2011-05-23
  • 打赏
  • 举报
回复
确定问题出在什么地方,如果这样可以显示的话,你把你的SQL语句查询出数据看数据是否正确。否则的话就应该不是排序引起的错误。
xfxlylove 2011-05-23
  • 打赏
  • 举报
回复
如果数据不进行排序的时候,你在第二页显示是否正常?
jiangmurong 2011-05-23
  • 打赏
  • 举报
回复
补充:

finishyear desc,finishmonth desc

finishyear:年份:2011.2010
finishmonth 月份

有多条记录,所有排序字段的值不唯一
jiangmurong 2011-05-23
  • 打赏
  • 举报
回复
谁帮帮忙啊~~~~

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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