一般 咱们的数据表中 可能会包含各类状态属性, 例如 blog表中,咱们须要有字段表示其是否公开,是否有设置密码,是否被管理员封锁,是否被置顶等等。 也会遇到在后期运维中,策划要求增长新的功能而形成你须要增长新的字段。
这样会形成后期的维护困难,数据库增大,索引增大的状况。 这时使用位运算就能够巧妙的解决。
例如
-- 公开blog 给status进行或运算
UPDATE blog SET status = status | 1;
-- 加密blog 给status进行或运算
UPDATE blog SET status = status | 2;
-- 封锁blog
UPDATE blog SET status = status | 4;
-- 解锁blog
UPDATE blog SET status = status ^ 4;
-- 查询全部被置顶的blog
SELECT * FROM blog WHERE status & 8;