我在数据库上有 2 个字段。次要和主要:
Minor, Major
0,0
1,0
2,0
3,0
4,0
5,0
7,0
8,0
...
65536,0
0,1
1,1
2,1
3,1
4,1
...
65536,1
0,2
比较这个的最佳方法是什么。我在 Bookshelf.js 上这样做但在 php 或 ruby 中也很受欢迎。我需要检查当前情况,获得更大的主要并添加次要 + 1,如果不是 65536 其他次要是 0 主要获得主要 + 1。
提前致谢。
编辑: 我必须将主要和次要保存到各自的领域。他们为每个注册用户递增。
例如。 用户
id, username,minor,major
1, john , 0, 0
2, mike, 1, 0
....
65537, jeff, 65536,0
现在 Tom 的主要增量是因为表上的最后一个次要是 65536。
65538, tom, 0 , 1
我不知道如何解释更多。
最佳答案
我绝对不确定理解这个问题,但这里有一些关于限制整数值范围的想法:
- 像许多语言一样,MySQL 有一些 UNSIGNED SMALLINT包含 2 字节值的数据类型,即从 0 到 65535(不是 65536 !)
- 大多数编程语言都有一个“模数”运算符 (
%
-- php mysql ),它允许您收集整数除法的其余部分。例如,... % 65536
将返回 0 到 65535 之间的值,包括。如果您确实需要 0 到 65536 之间的值,包括在内,您将改为编写... % 65537
。 - 您可以使用掩码 运算符(“按位与”
&
-- php mysql)。例如,... & 0xFFFF
只会保留数字的两个最低有效字节——实际上执行相当于“模 65536”操作(结果介于 0 和 65535 之间)
关于php - 检查 2 数字算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23239921/