您的位置:首页 > 数据库 > MySQL

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

2017-12-28 10:18 811 查看
在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.”
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mysql 添加序号 RowNum