最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2011年07月22日 23:26:47   作者:  
php 數(shù)據(jù)庫字段復(fù)用的基本原理與示例,需要的朋友可以參考下。
一、邏輯代數(shù)基礎(chǔ):
  1,數(shù)字用二進制表示,所有可能出現(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次方(掩碼)進行與運算即可。
  三、數(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ù),為了盡可能的存儲多個屬性,我們將其進行如下定義:
  以下所有“位”的描述順序按照從低到高(從右到左)順序表示。
  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程序進行此類計算:
  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}";
  依此類推,只要定義好每個值的含義,查詢基本上就定了。

相關(guān)文章

  • php代碼收集表單內(nèi)容并寫入文件的代碼

    php代碼收集表單內(nèi)容并寫入文件的代碼

    前兩天,一朋友讓我?guī)退麑懸粋€收集表單內(nèi)容并寫入文件的簡單PHP代碼,由于最近工作忙,也沒有時間來寫,今天終于抽出點時間來完成了這個任務(wù),下面就把相關(guān)的代碼開源出來,供大家參考
    2012-01-01
  • php封裝的連接Mysql類及用法分析

    php封裝的連接Mysql類及用法分析

    這篇文章主要介紹了php封裝的連接Mysql類及用法,基于php封裝了簡單的MySQL數(shù)據(jù)庫的連接、查詢、遍歷等技巧,并附帶說明了其具體用法,需要的朋友可以參考下
    2015-12-12
  • setcookie中Cannot modify header information-headers already sent by錯誤的解決方法詳解

    setcookie中Cannot modify header information-headers already s

    本篇對setcookie中Cannot modify header information-headers already sent by錯誤的解決方法進行了詳細(xì)的分析介紹。需要的朋友參考下
    2013-05-05
  • dede3.1分頁文字采集過濾規(guī)則詳說(圖文教程)續(xù)四

    dede3.1分頁文字采集過濾規(guī)則詳說(圖文教程)續(xù)四

    dede3.1分頁文字采集過濾規(guī)則詳說(圖文教程)續(xù)四...
    2007-04-04
  • php偽協(xié)議實現(xiàn)命令執(zhí)行詳情

    php偽協(xié)議實現(xiàn)命令執(zhí)行詳情

    這篇文章主要介紹了php偽協(xié)議實現(xiàn)命令執(zhí)行詳情,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,感興趣的朋友可以參考一下
    2022-06-06
  • PHP使用curl函數(shù)發(fā)送Post請求的注意事項

    PHP使用curl函數(shù)發(fā)送Post請求的注意事項

    這篇文章主要給大家介紹的是PHP使用curl函數(shù)發(fā)送Post請求的一些注意事項,文中通過示例代碼與解釋介紹的很詳細(xì),對大家學(xué)習(xí)或則使用PHP具有一定的參考借鑒價值,有需要的朋友們可以跟著小編一起來學(xué)習(xí)學(xué)習(xí)吧。
    2016-11-11
  • golang與PHP輸出excel示例

    golang與PHP輸出excel示例

    這篇文章主要介紹了golang與PHP輸出excel的方法,結(jié)合實例形式對比分析了Go語言及php輸出Excel文件的相關(guān)技巧,需要的朋友可以參考下
    2016-07-07
  • php開發(fā)過程中關(guān)于繼承的使用方法分享

    php開發(fā)過程中關(guān)于繼承的使用方法分享

    通常需要這樣一些類,這些類與其它現(xiàn)有的類擁有相同變量和函數(shù)。實際上,定義一個通用類用于所有的項目,并且不斷豐富這個類以適應(yīng)每個具體項目將是一個不 錯的練習(xí)。
    2011-06-06
  • 實現(xiàn)php刪除鏈表中重復(fù)的結(jié)點

    實現(xiàn)php刪除鏈表中重復(fù)的結(jié)點

    在本篇文章中,我們給大家?guī)砹岁P(guān)于php刪除鏈表中重復(fù)的結(jié)點的相關(guān)知識點內(nèi)容以及相關(guān)代碼,有興趣的朋友們參考下。
    2018-09-09
  • php判斷當(dāng)前用戶已在別處登錄的方法

    php判斷當(dāng)前用戶已在別處登錄的方法

    這篇文章主要介紹了php判斷當(dāng)前用戶已在別處登錄的方法,主要利用session記錄用戶登錄信息來完成這一功能,是非常實用的技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-01-01

最新評論

南京市| 新密市| 南宫市| 海城市| 浦北县| 金堂县| 河曲县| 湛江市| 固镇县| 怀仁县| 台前县| 茶陵县| 桑日县| 资讯 | 武隆县| 金华市| 巴楚县| 长阳| 东明县| 比如县| 新源县| 新竹市| 同江市| 漳平市| 同德县| 陵水| 阳泉市| 偏关县| 大渡口区| 和田市| 保山市| 肇庆市| 连云港市| 大城县| 腾冲县| 黄骅市| 无棣县| 大宁县| 阳新县| 康马县| 桃园市|