经常会遇见这么一个情况,需求中有:
爱好: 篮球 ☑ 足球 ☑ 羽毛球 ☑
在数据库中,你可以区分为三列,分别是篮球、足球、羽毛球,值就存trueORfalse
今天提供一个新的思路给大家,
篮球=2 足球=4 羽毛球=8
数据库中存选中的选项的值的和。
如我选择了篮球、足球,则值的和为:6
扫描二维码关注公众号,回复:
239159 查看本文章
然后再次编辑的时候,只要拿6分别和选项做与运算, 结果大于0则说明选择了,等于0则说明未选择。
原理解析:
其实很简单,就是最常用的与运算,
比如羽毛球, 8 换算为二进制为:1000, 6换算为二进制为:0110。
1 0 0 0
———— = 0000
0 1 1 0
而 2的二进制为 0010
0 0 1 0
———— = 0010 = 十进制的2 > 0
0 1 1 0
总结:
优点在于减少了很多代码量,很灵巧的解决了问题。
缺点在于数据库中的值,不能清晰的显示出用户选择了什么。
大家根据自己的需求,可以继续完善算法,我这里只是提供一个小思路。