四虎精品视频-四虎精品成人免费网站-四虎黄色网-四虎国产视频-国产免费91-国产蜜臀97一区二区三区

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

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

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

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

主站蜘蛛池模板: 不速之客美国恐怖电影2014| 24小时第三季| 张成楚| 《我的美女老板》电视剧| 五年级语文下册| 女友电影| 我的公公电影| 李雪琴个人资料及简历| 强电影| 黄金城电影在线观看免费高清| 我和我的祖国钢琴谱完整版 | 少年派2 2022 张嘉益| 风花电影完整版免费观看| 舞法天女之绚彩归来演员表| 那些女人电视剧免费观看全集剧情| 张国新| 我金子般的孩子| 放不下的牵挂简谱| 张国荣霸王别姬| 就爱小姐姐| 妙想天开| 溜冰圆舞曲音乐教案| 色戒在线观看| 夜之女王 电影| 影视剧分娩片段合集| 惊天战神 电影| 50000蛋币兑换码2025年有效| 奇爱博士| 高规格| 白璐个人简介照片| 日韩欧美动作影片| 《克莱默夫妇》| 戚薇床戏| 头文字d里演员表| 《克莱默夫妇》| 白璐个人简介照片| 那些女人演员表全部名单| 性感的秘书| 色戒在线观看完整版| 捷克女人性ⅹxxxx视频| 河南省物业管理条例|