row_number是一个返回数据排序编号的排名方法,从1开始。我们经常需要用到row_number去生成某些报表,不幸的是,MySQL并不像MSSQL,Oracle一样支持这个方法。在MySQL中如果想实现这个功能需要临时变量。
为了在MySQL中实现row_number,需要在查询中实用临时变量,下图中从employees表中查询出5条数据,并且从1开始,为每一行添加了编号(row number)。
在上面的查询中:
首先,我们定义了一个变量叫做row_number,初始值为0,row_number是以@为前缀的一个临时变量。
然后,在查询中,我们为这个变量每次+1,LIMIT分句是为了限制返回的结果数,此处设为5.
另一个方法是使用临时变量作为派生表,联合主表。看下边的查询语句:
需要注意,派生表必须使用别名,以使查询语句在语法上没有问题。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。