我需要从表中选择行,对行进行编号:前 3 行编号为:
1 2 3
之后(从第四行开始),再次开始编号,第二次编号继续到所有记录的末尾,即结果必须是这样的:
1 2 3 1 2 3 4 5 …… …… 777
我写了这个查询,但这会返回通常的编号,从 1 到最后一条记录。
请有人告诉我,我的查询在哪里逻辑错误?在我看来,这将返回麻木,正如我上面所写
mysql-> SET @n = 0
mysql-> SET @start_again = 'true'
SELECT
CASE
WHEN @n = 3 AND @start_again = 'true' THEN @n := 1
ELSE @n := @n + 1
END,
CASE
WHEN @n = 3 AND @start_again = 'true' THEN @start_again := 'false'
END
FROM mytable