一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

php 數(shù)據(jù)庫(kù)字段復(fù)用的基本原理與示例

一、邏輯代數(shù)基礎(chǔ):
  1,數(shù)字用二進(jìn)制表示,所有可能出現(xiàn)的數(shù)只有0和1兩個(gè)。
  2,基本運(yùn)算只有“與”、“或”、“非”三種。
  與運(yùn)算定義為:(用 & 表示與運(yùn)算)
  0 & 0 = 0
  0 & 1 = 0
  1 & 0 = 0
  1 & 1 = 1
  可以簡(jiǎn)單理解為:只要有一個(gè)0,結(jié)果就是0,和乘法類(lèi)似。
  或運(yùn)算定義為:(用 表示與運(yùn)算)
  0 0 = 0
  0 1 = 1
  1 0 = 1
  1 1 = 1
  可以簡(jiǎn)單理解為:只要有一個(gè)1,結(jié)果就是1,和加法類(lèi)似。
  二、邏輯運(yùn)算示例:
  01111010101010101111111111111111 & 1100000 = 1100000
  一般可以理解為:
  如果要獲取一個(gè)數(shù)字某N位的數(shù)值,只需要將這個(gè)數(shù)字與2的N-1次方(掩碼)進(jìn)行與運(yùn)算即可。
  三、數(shù)據(jù)庫(kù)字段定義:
  以數(shù)據(jù)表 binary_sample為例:
  create table binary_sample(
  uid int unsigned not null,
  status int unsigned not null default 0,
  primary key(uid),
  key i_s(status)
  )engine=innodb;
  status字段定義:
  status字段數(shù)據(jù)類(lèi)型為32bit的整數(shù),為了盡可能的存儲(chǔ)多個(gè)屬性,我們將其進(jìn)行如下定義:
  以下所有“位”的描述順序按照從低到高(從右到左)順序表示。
  0-2位表示用戶(hù)注冊(cè)狀態(tài):
  000 表示新注冊(cè)未被批準(zhǔn)
  001 表示注冊(cè)被批準(zhǔn)
  010 表示位高級(jí)用戶(hù)
  011 表示管理員
  100 表示超級(jí)管理員
  101 保留
  110 保留
  111 掩碼
  3-5位用戶(hù)性別:
  000 表示性別不確定
  001 表示性別為男
  010 表示性別為女
  011 保留
  100 保留
  101 保留
  110 保留
  111 掩碼
  如果我們要查詢(xún)所有 男用戶(hù) 則:
  select * from binary_sample where status & b'111000' = b'001000';
  如果我們要查詢(xún)所有 管理員用戶(hù) 則:
  select * from binary_sample where status & b'111' = b'011';
  如果我們要查詢(xún)所有 男管理員用戶(hù) 則:
  select * from binary_sample where status & b'111111' = b'001011';
  如果我們要查詢(xún)所有 非 新注冊(cè)未被批準(zhǔn)用戶(hù) 則:
  select * from binary_sample where status & b'111' != b'000';
  四,使用php程序進(jìn)行此類(lèi)計(jì)算:
  define("USER_NEW",0);//000
  define("USER_NORMAL",1);//001
  define("USER_ADVANCE",2);//010
  define("USER_MANAGE",3);//011
  define("USER_SUPER",4);//100
  define("USER_MASK",7);//111
  define("GENDER_UNKNOWN",0);// 000000
  define("GENDER_MALE",8);// 001000
  define("GENDER_FEMALE",9);// 010000
  define("GENDER_MASK",56);// 111000
  如果我們要查詢(xún)所有 男用戶(hù) 則:
  $status=GENDER_MALE;
  $mask=GENDER_MASK;
  $sql="select * from binary_sample where status & ${mask}' = ${status}";
  如果我們要查詢(xún)所有 管理員用戶(hù) 則:
  $status=USER_MANAGE;
  $mask=USER_MASK;
  $sql="select * from binary_sample where status & ${mask}' = ${status}";
  如果我們要查詢(xún)所有 男管理員用戶(hù) 則:
  $status=GENDER_MALE & USER_MANAGE;
  $mask = GENDER_MASK & GENDER_MASK;
  $sql="select * from binary_sample where status & ${mask}' = ${status}";
  如果我們要查詢(xún)所有 非 新注冊(cè)未被批準(zhǔn)用戶(hù) 則:
  $status = USER_NEW;
  $mask = USER_MASK;
  $sql="select * from binary_sample where status & ${mask} != ${status}";
  依此類(lèi)推,只要定義好每個(gè)值的含義,查詢(xún)基本上就定了。

php技術(shù)php 數(shù)據(jù)庫(kù)字段復(fù)用的基本原理與示例,轉(zhuǎn)載需保留來(lái)源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 精品福利在线播放 | 国产精品福利一区二区亚瑟 | 特黄aaaaaa久久片 | 春色视频一区二区三区 | 9797在线看片亚洲精品 | 特黄aaaaaa久久片 | 欧美特黄三级在线观看 | 婷婷夜夜躁天天躁人人躁 | 色噜噜国产在线91蝌蚪 | 加勒比东洋精品映画防屏蔽 | 国产精品久久久久桃色tv | 国产高清一区二区三区四区 | 国产一区二区高清视频 | 91视频免费视频 | 九九久久国产 | 成人中文字幕一区二区三区 | 草草草在线观看 | 亚洲美女一级毛片 | 日韩欧美伊人久久大香线蕉 | 韩国免费一级片 | 手机在线成人精品视频网 | 亚欧色视频在线观看免费 | 99久久99久久 | 午夜激情在线观看 | 久久中文娱乐网 | 国产九九精品视频 | 国产福利专区精品视频 | 九九视频精品在线 | 国产精品_国产精品_国产精品 | 一级做a爰片欧美aaaa | 久久久久久午夜精品 | 亚洲香蕉久久综合网 | 奇米影视99 | 欧美亚洲国产成人精品 | 亚亚洲乱码一二三四区 | 国产91在线播放 | 激情亚洲婷婷 | 国产成人在线视频 | 亚洲第一黄 | 色妞精品一区二区 | 欧美日韩不卡码一区二区三区 |