gpt4 book ai didi

MySQL 添加每个 ID 的行号

转载 作者:行者123 更新时间:2023-11-29 13:16:20 25 4
gpt4 key购买 nike

我有一个带有 sessionID 的表测试。我想对 ID 进行分组,并为每个 ID 的每条记录添加行号。我用过MSSQL Row_Number() over(order by) in MySql并添加了一个 if 语句(按 session_ID 进行分组)。然而,这不起作用。有谁知道为什么这不起作用?

SET @row:=0
SET @sessionID:=0

SELECT
session_ID
@row:=if(@sessionID = session_ID, @row+1, 1) AS row_num
@sessionID := session_ID
FROM test

最佳答案

您需要在 row_num 之后添加一个逗号,并且需要一个 order by:

SET @row:=0;
SET @sessionID:=0;

SELECT
session_ID,
@row:=if(@sessionID = session_ID, @row+1, 1) AS row_num,
@sessionID := session_ID
FROM test
ORDER BY session_ID;

您可以将其编写为单个查询:

SELECT session_ID,
@row:=if(@sessionID = session_ID, @row+1, 1) AS row_num,
@sessionID := session_ID
FROM test cross join
(select @row := 0, @sessionID := 0)
ORDER BY session_ID;

关于MySQL 添加每个 ID 的行号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21408994/

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