首页 > 解决方案 > 我怎样才能让一个字段在顺序中有特定的数字

问题描述


你好,我有一个 as3 应用程序。这个应用程序将用户分组,每组由 3 个用户组成。

在我的 mysql 数据库中,“users_into”表中有一个字段,用于标识其组中的用户数。该字段称为“num_in_group”,对于每个用户,其值必须是 1 到 3 之间的数字。

为了澄清

在应用程序中注册的第一个用户将具有数字 1,第二个将具有数字 2,第三个将具有数字 3 ---第四个将具有 1(不是 4)-----和第五个将有 2 个,第六个将有 3 个,第七个将有 1 个,依此类推......

所以我的问题是我怎样才能让这个字段有数字 1 , 2 , 3 , 1 , 2 , 3 的顺序不断

标签: mysqlsql

解决方案


您可能会发现可以接受的一个选项是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 值的均匀分布,那么您可能可以接受上述情况。


推荐阅读