最近做一个项目,把一些bool类型的数据合并到一个字段中,每一个二进位表示一个独立的信息。后来做查找功能时发现问题了,SELECT语句中没有按位操作。把字段分开的话,前面的代码都要改。郁闷ing...
吃晚饭的时候突然想到一个办法,一试,果然好用。
WHERE ((Hot/262144)-Int(Hot/262144))>=0.5
该条件是 Hot 字段的第17位(二进位)等于1,数字262144变成十六进制是0x20000
同样
WHERE ((Hot/262144)-Int(Hot/262144))<0.5
表示 Hot 字段的第17位(二进位)等于0
自认为这个方法不错,与大家分享,如果那位朋友有更简单的方法,也请帖出,谢谢。