mysql5.7实现row_number()
时间: 2024-03-15 10:23:27 浏览: 158
在MySQL5.7版本中,可以使用变量来实现row_number()函数。下面是一个示例代码来实现row_number()函数的效果:
set @rownum := 0;
set @class :='';
select class, english,
@rownum := if(@class = class, @rownum + 1, 1) as rownumber,
@class := class as last_class
from score
order by class, english desc;
在这个示例中,首先通过设置一个变量@rownum来表示行号,设置另一个变量@class来保存上一行的class值。然后在查询语句中,通过if()函数来判断当前行的class值是否与上一行相同,如果相同,则@rownum加1,否则重新从1开始计数。最后,将当前行的class值以及计算得到的行号存储在相应的列中。排序是通过order by子句实现的。
这样,就可以在MySQL5.7中实现类似row_number()函数的功能了。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [MySQL5.7版本使用变量实现窗口函数 row_number、dense_rank、rank](https://blog.csdn.net/weixin_42051673/article/details/113650327)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]
阅读全文