mysql row_number()用法
时间: 2023-09-07 21:16:39 浏览: 97
在MySQL中,没有直接提供row_number()函数。但是可以使用MySQL的变量来实现类似的功能。下面是一个例子来演示如何使用变量来模拟row_number()函数的效果:
```
SELECT goods_name, create_date,
@row_number := CASE
WHEN @prev_goods_name = goods_name THEN @row_number + 1
ELSE 1
END AS row_number,
@prev_goods_name := goods_name
FROM goo_sku, (SELECT @row_number := 0, @prev_goods_name := '') AS vars
ORDER BY goods_name, create_date DESC;
```
在这个例子中,我们使用了两个变量@row_number和@prev_goods_name。首先,我们初始化这两个变量为0和空字符串。然后,我们将goods_name和create_date进行排序,并在分组内部进行计数。如果当前记录的goods_name与前一条记录的goods_name相同,则@row_number加1,否则重置为1。最后,将结果按照goods_name和create_date倒序排序。
请注意,由于MySQL的变量只在会话中有效,所以需要在查询之前初始化变量。在上面的例子中,我们使用了一个子查询来初始化变量。
希望这个例子对你有所帮助!<span class="em">1</span>
#### 引用[.reference_title]
- *1* [【mysql 窗口函数row_number】](https://blog.csdn.net/weixin_57057153/article/details/130583481)[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^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]
阅读全文