条件编号行

时间:2012-09-18 11:01:02

标签: mysql

我需要从表中选择行,使编号行如此:前3行编号为:

1  
2  
3

和之后(从第四行开始),再次开始编号,第二个编号继续到所有记录的结尾,结果必须是这样的:

1  
2  
3  
1  
2  
3  
4  
5  
....  
....  
777

我写了这个查询,但这会返回通常的编号,从1到最后一条记录。

请有人告诉我,我的查询中哪些逻辑错误?在我看来,这将返回numbring,正如我在上面写的那样

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

1 个答案:

答案 0 :(得分:1)

你的任务太复杂了。

SET @n = 0
SELECT if((@n := @n + 1) > 3, @n - 3, @n) AS n ...