首发:MySQL实现row_numberhtml
在本教程中,咱们将在MySQL中实现一个很是实用的row_number功能。mysql
row_number是一个返回数据排序编号的排名方法,从1开始。咱们常常须要用到row_number去生成某些报表,不幸的是,MySQL并不像MSSQL,Oracle同样支持这个方法。在MySQL中若是想实现这个功能须要临时变量。sql
为了在MySQL中实现row_number,须要在查询中实用临时变量,下图中从employees表中查询出5条数据,而且从1开始,为每一行添加了编号(row number)。session
SET @row_number = 0; SELECT (@row_number:=@row_number + 1) AS num, firstName, lastName FROM employees LIMIT 5;
在上面的查询中:spa
首先,咱们定义了一个变量叫作row_number,初始值为0,row_number是以@为前缀的一个临时变量。翻译
而后,在查询中,咱们为这个变量每次+1,LIMIT分句是为了限制返回的结果数,此处设为5.code
另外一个方法是使用临时变量做为派生表,联合主表。看下边的查询语句:htm
SELECT (@row_number:=@row_number + 1) AS num, firstName, lastName FROM employees,(SELECT @row_number:=0) AS t LIMIT 5;
须要注意,派生表必须使用别名,以使查询语句在语法上没有问题。blog
因为时间关系(回家过年),暂时到这里,文中部份内容可能翻译的有点不太顺,能够直接看下原文,原文中还有一部分讲分组查询中实用row_number。排序
这个以后再写。