gpt4 book ai didi

mysql - 根据cate(MySql)获取行号

转载 作者:行者123 更新时间:2023-11-29 10:36:32 29 4
gpt4 key购买 nike

我使用查询得到了下表和数据

SELECT b.*, (@rownum :=@rownum +1) AS row_number 
FROM notices b, (SELECT @rownum := 0 ) row

结果:

id  cate  rownumber
-------------------
1 5 1
2 5 2
3 6 3
4 5 4
5 5 5
6 5 6
7 5 7

我想在不使用 row_number() 或其他函数的情况下输出下面的结果,因为我的 RDBMS 不支持这些。

id  cate  rownumber
-------------------
1 5 1
2 5 2
3 6 1
4 5 3
5 5 4
6 5 5
7 5 6

最佳答案

要使用 MySQL 中的分区模拟 ROW_NUMBER,您只需引入另一个 session 变量即可在迭代 中的记录时跟踪 cate 组值通知

SET @rn = NULL;
SET @cate = NULL;

SELECT id, cate, rn
FROM
(
SELECT
@rn:=CASE WHEN @cate = cate THEN @rn + 1 ELSE 1 END AS rn,
@cate:=cate,
id,
cate
FROM notices
ORDER BY
cate, id
) t
ORDER BY cate, rn;

此处演示:

Rextester

关于mysql - 根据cate(MySql)获取行号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46312974/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com