我在数据库上有两个字段。小调和大调:

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

现在汤姆的,主要增量,因为表上的最后一个小调是65536。
65538, tom, 0 , 1

我不知道该怎么解释。

最佳答案

我完全不确定是否能理解这个问题,但这里有一些关于限制整数值范围的想法:
与许多语言一样,mysql有一些UNSIGNED SMALLINT数据类型,其中包含2个字节的值,即从0到65535(而不是65536!)
大多数编程语言都有一个“模”运算符(%--phpmysql),允许您收集整数除法的其余部分例如,... % 65536将返回一个介于0和65535 incl之间的值。如果您确实需要一个介于0和65536 incl之间的值,您将改为编写... % 65537
可以使用掩码运算符(“按位和”&--phpmysql)。例如,... & 0xFFFF将只保留一个数的两个最低有效字节——实际上执行相当于“模65536”运算(结果介于0和65535之间)。

09-30 14:09