设想 :
我说有 4 个复选框,用户可以以任意组合选择这些复选框(他们也有权不选择任何一个复选框)。我必须将这 4 个选项存储到一列中。我认为最好的选择是使用二进制表示形式存储
option1 has the constant value 1
option2 has the constant value 2
option3 has the constant value 4
option4 has the constant value 8
因此,如果客户选择选项2和选项4,那么存储在数据库中的值将是2 + 8,即:10,如果客户选择选项1、选项4和选项8,则存储在数据库中的值将是1 + 4 + 8,即13。
另外,当我从 mysql 查询时,我可以使用
Select * from option_table where (option & 4)=4;
如果我想检索选择 option3 的行。
但由于某种原因,我无法使用这种方法,或者只是说我需要知道将这些多个值存储在单列中的下一个最佳选择是什么?
另一种方法是素数相乘。要进行选择,您需要选择列值中素数的模为 0 的列。
Example:
值1:2
值 2:3
值 3:5
值 4:7
值 2 和 3 将为 3*5 = 15
值 1、2、3、4 将为 2*3*5*7 = 210
要获取值 1 所在的行,请选择 wherevalue % 2 == 0
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)