MySQL为每个ID添加行数

MySQL为每个ID添加行数,mysql,sessionid,row-number,Mysql,Sessionid,Row Number,我有一个SessionID的表格测试。我想对ID进行分组,并为每个ID的每条记录添加行号。我使用并添加了一条if语句(为每个会话\ 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

我有一个SessionID的表格测试。我想对ID进行分组,并为每个ID的每条记录添加行号。我使用并添加了一条if语句(为每个会话\ 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  

您需要在
行数
后面加一个逗号,并且需要一个
排序依据

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;

嗯,它在工作。取消选择会话id后,缺少逗号。