Welcome 微信登录

首页 / 数据库 / MySQL / MySQL中如何在选出的结果集中打印某条记录的位置

在MySQL中,有时候我们要选出N条记录,希望在结果中每条记录中加上一列标记该记录是第几条。
这个问题在Oracle中,用rownum就可以简单的实现,但是在MySQL中,怎么去实现呢?下面给大家举一个例子:
select t.page,t.pv,@rn:=if(1=1,@rn+1,@rn) as rn
from
(select
page,
pv 
from  
module_page_statis
where
statisDay="2010-05-31" and module="new_info" order by 2 desc  limit 10) t, (select @rn:=0) t2
order by t.pv desc
这里略微解释下:
1,(select @rn:=0) 仅仅起到初始化的作用。
2,@rn:=if(1=1,@rn+1,@rn) 这一句是每选出一条记录出来,执行一次。当然这里面还可以填充更复杂的逻辑。Oracle主键自增及存储过程的实现Eclipce和MySQL的连接相关资讯      mysql 
  • 数据库服务器 MySQL  (08/15/2013 06:50:23)
  • MySQL 5.6 GA 及逃亡潮  (02/08/2013 14:36:35)
  • MySQL 5.5.22、5.1.62、5.0.96全线  (03/22/2012 19:03:49)
  • MySQL Administrator连接VMWare下  (05/24/2013 09:20:58)
  • MySQL 5.1.68 发布  (02/05/2013 08:37:47)
  • CentOS 5.2+MySQL+Heartbeat双机互  (01/29/2012 11:16:55)
本文评论 查看全部评论 (0)
表情: 姓名: 字数