在mysql中给查询的结果添加序号

9 篇文章 0 订阅
1 篇文章 0 订阅

在mysql中给查询的结果添加序号

一. 如何添加序号的方法:

方法1:
Select (@i:=@i+1) as RowNum, A.* from Table1 A,(Select @i:=0) B order by a.id desc limit 0, 10;
方法2: 
Set @i:=0;
Select (@i:=@i+1) as RowNum, A.* from Table1 A order by a.id desc limit 0,10
以下SQL可在分页中使用:
set @i:=10; select (@i:=@i+1) as RowNum, A.* from Table1 A order by a.id desc limit 10,5

查询结果从第10条开始,取5条(每页5行数据)。序号也从10开始。

以上方法适合在单表查询添加序号RowNum,如果要对复杂的查询或视图添加RowNum,则需先做查询(分组或排序后)结果,然后将查询结果作为子查询的表,再添加行序号。(看二)

二. 对视图查询排序并添加序号

注意:如果是视图或复杂的包含子查询的SQL查询,需先对视图或复杂查询进行查询和排序后,再将查询结果做为表A 添加序号。
如:

Set @i:=X;select (@i:=@i+1) as RowNum, A.* from 
  (Select *  from Table1 T where 1=1 order by T.id desc limit X, N) A
或
Select (@i:=@i+1) as RowNum, A.* from (Select @i:=X) B,
  (Select *  from Table1 T where 1=1 order by T.id desc limit X, N) A

这种方式适合对表、视图和复杂查询结果添加序号,是通用的方式。再分页查询中常用。

三. 在程序中使用带变量的SQL语句

在.net程序中使用带变量的SQL语句时,需要在数据库的连接字符串后面添加“Allow User Variables=True;”。这样就可以实现,SQL语句参数自定义化。
否则会报错“Fatal error encountered during command execution.”

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值