【问题标题】:how can I make a field have specific numbers in the order我怎样才能让一个字段在顺序中有特定的数字
【发布时间】:2020-08-22 03:15:30
【问题描述】:

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

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

澄清

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

所以我的问题是我怎样才能使字段中的数字 1 , 2 , 3 , 1 , 2 , 3 的顺序不断

【问题讨论】:

  • 此功能内置于 MyISAM 表的自动增量行为中,但是,如果是我,我只需存储一个常规的自动增量 id 并立即计算此辅助值-飞'
  • 所以我的问题是我怎样才能使该字段有数字 1 , 2 , 3 , 1 , 2 , 3 的顺序不断。只需按 num_in_group 使用 order

标签: mysql sql


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2021-10-26
    • 1970-01-01
    • 2021-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-19
    • 1970-01-01
    • 2021-01-18
    相关资源
    最近更新 更多