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