mysql 如何得到一条记录在所有记录的第几行 15
2个回答
展开全部
你好,mysql本身是没有行号的。要想得到查询语句返回的列中包含一列表示该行记录在整个结果集中的行号可以通过自定义set一个变量,然后每条记录+1的方式,返回这个变量的值。
举例:
表名为:s_ave
表的内容:
Ave Avename
1 d
3 e
4 a
6 b
5 e
我们要查询 ave=6 的行号:
set @mytemp = 0;
select * from (
SELECT (@mytemp:=@mytemp+1) as newid,Ave,Avename FROM s_ave
) AS A
WHERE A.Ave=6
自己试一下吧,这里 mytemp 的值就是行号。
举例:
表名为:s_ave
表的内容:
Ave Avename
1 d
3 e
4 a
6 b
5 e
我们要查询 ave=6 的行号:
set @mytemp = 0;
select * from (
SELECT (@mytemp:=@mytemp+1) as newid,Ave,Avename FROM s_ave
) AS A
WHERE A.Ave=6
自己试一下吧,这里 mytemp 的值就是行号。
追问
比如说 avename 里有四条d的记录,e有五条记录 如何分别对它们加上序列号 就像那1234123这种?
追答
呃。。如果你是要把求一行的值的进行排序。。
set @mytemp = 0;
select (@mytemp:=@mytemp+1) as newid,a.Ave,a.Avename from (
SELECT Ave,Avename FROM s_ave
) AS A
WHERE a.Avename='e'
看看这个满足不满足你的需求。。
展开全部
SQL 关键字 IDENTITY
声明一个临时表 #Temp
create table #Temp ((ID INT IDENTITY(1,1) primary key,SN CHAR(12))
SQL 代码如下:
insert into #Temp (SN)
select SN from table order by SN asc
假如SN=6,并且table只有10条记录
select ID,SN from #Temp where SN=6
得出的ID 号就是所在行号
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |