mysql - 我怎样才能让一个字段在顺序中有特定的数字
问题描述
你好,我有一个 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 值的均匀分布,那么您可能可以接受上述情况。
推荐阅读
- r - (R) 编辑数据表中多列数据后面单元格的渐变颜色
- angular - ngFor 中调用的方法多次触发
- azure-devops - 获取项目列表及其进程名称
- rest - 如何使用rest api从nuxeo文件夹中获取文件名列表?
- java - Chromebook:无法将文件附加到电子邮件
- pandas - Groupby 两列,其中一列是日期时间
- sql-server - SQLLocalDB.exe 信息 - 返回错误代码 15100 等
- java - 将图像上传到 AWS S3 存储桶并使用 Amazon CloudFront 签名的 url 提供该图像
- php - 尝试在 PHP 中使用命名空间时的未知问题
- django - Django RF,序列化程序验证字段中的日期比较错误