问题描述
您好,我有一个as3应用。此应用将用户分为几组,每组由3个用户组成。
在我的mysql数据库中,“ users_into”表中有一个字段,用于标识其组中的用户数。 该字段称为“ num_in_group”,每个用户的值必须为1到3之间的数字。
为澄清起见
在应用程序中注册的第一个用户将具有编号1,第二个用户将具有编号2,第三个用户将具有编号3 ---,而第四个将具有1(而不是4)-----第五个将有2个,第六个将有3个,第七个将有1个,依此类推...
所以我的问题是我如何使该字段连续不断地具有数字1,2,3,1,2,3
解决方法
您可能会接受的一个选项是使用ROW_NUMBER()
并在查询时生成此值:
SELECT
id,1 + (ROW_NUMBER() OVER (ORDER BY id) - 1) % 3 AS seq
FROM yourTable
ORDER BY id;
以上假设id
是一个自动递增列,每个用户都有一个独特的想法。这种方法唯一的潜在问题是id
可能并不总是连续的或递增的。假设您可以容忍绝大多数用户的值分布为1、2和3,那么上面的值对您来说可以接受。