テーブルから行を選択する必要があるため、行に番号を付ける必要があります。最初の3行の番号は次のとおりです。
1 2 3
その後 (4 行目から)、再び番号付けを開始し、この 2 番目の番号付けがすべてのレコードの最後まで続きます。つまり、結果は次のようになります。
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