mysql 如何得到一条记录在所有记录的第几行 15

 我来答
朱朱的天空
2012-12-25 · TA获得超过3761个赞
知道大有可为答主
回答量:1594
采纳率:63%
帮助的人:1141万
展开全部
你好,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 的值就是行号。
追问
比如说  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'

看看这个满足不满足你的需求。。
dong_1984dd
推荐于2016-03-10 · TA获得超过1.1万个赞
知道小有建树答主
回答量:1070
采纳率:100%
帮助的人:226万
展开全部
  1. SQL 关键字 IDENTITY

  2. 声明一个临时表 #Temp

  3. create table #Temp ((ID INT IDENTITY(1,1) primary key,SN CHAR(12)) 

  4. SQL 代码如下:

  5. insert into #Temp (SN)

  6. select SN  from table order by SN asc

  7. 假如SN=6,并且table只有10条记录

  8. select ID,SN from #Temp where SN=6

  9. 得出的ID 号就是所在行号

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式