mysql获取查询结果的行号 50

因为要做一个目录排序,比如有一个表示记录目录的,表数据如下,目录id目录名称父目录id1第一章02第二章031.1xxx141.2xxx152.1xxx2现在要求查询第一... 因为要做一个目录排序,比如有一个表示记录目录的,表数据如下,
目录id 目录名称 父目录id

1 第一章 0
2 第二章 0
3 1.1 xxx 1
4 1.2 xxx 1
5 2.1 xxx 2
现在要求 查询第一章的所有目录,也就是目录id 为1且父目录id也为1的所有目录,并且显示他们在数据库中的所在行号,比如按照当前查询结果,第一章所在行号就是1,目录id为3的 1.1 xxx的行号为2,目录id为4的 1.2 xxx为3
展开
 我来答
百度网友2d5f427
2013-10-30 · TA获得超过103个赞
知道小有建树答主
回答量:145
采纳率:0%
帮助的人:111万
展开全部
看你的意思行号就是显示顺序号,你的查询结果可以按id升序排序(order by id),这样查询结果的顺序就是显示的顺序,这个行号可以在程序里加上,不用在数据库操作。另外最好是加上一个排序值得字段,这样可以随时调整显示顺序。
追问
不是顺序号,有可能在后边增加一条数据
6 1.0 xxx 1
这条数据就应该在1.1和1.2的前边
追答
这样最好是增加加一个排序字段,相同父节点的按排序值排序就可以了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
小狂中E
2013-10-30 · TA获得超过1418个赞
知道大有可为答主
回答量:1514
采纳率:66%
帮助的人:1025万
展开全部
set @r=0;

select @r:=@r+1, id, name, pid

from t

where id=1 or pid=1
order by pid,name
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
tianlanyijiu1
2013-10-30 · TA获得超过195个赞
知道小有建树答主
回答量:294
采纳率:100%
帮助的人:149万
展开全部
Select rownum as '目录id', 目录名称, 父目录id from TableName where 父目录id = '1';
更多追问追答
追问
行号不是顺序号,有可能在后边增加一条数据
6 1.0 xxx 1
这条数据就应该在1.1和1.2的前边
追答
这个简单,可以这样子,后面再加一个:
order by 目录名称

就可以了,这样会自动升序排序的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式