日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

mysql 使用位运算

發(fā)布時間:2023/11/27 生活经验 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql 使用位运算 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
如果你不知道什么是位運算的話, 那么請你先去看看基礎(chǔ)的C語言教程吧。
與運算 a & b? ,
或運算 a | b ,?
異或運算 a ^ b ,

或者
你也可以將 與運算理解為 + 法?
例如
1|2 = 3?? (1+2 = 3)
1|2|4 = 7 (1+2+4 = 7)

將 異或運算理解為 - 法
例如
3^2 = 1 (3-2 = 1)
3^1 = 2? (3-1 = 2)

最后將 與運算 作為判斷
例如
3&2 = 1 ?? (3 = 1 + 2, 由 1和2組成 ,所以判斷3&2 = 1 )?
3&4 = 0?? ( 3 沒有由 4組成,所以判斷3&4 = 0)

那么位運算有何用處呢, 例如 UNIX系統(tǒng)中的權(quán)限, 通常我們所知? 權(quán)限分為? r 讀, w 寫, x 執(zhí)行,其中 它們的權(quán)值分別為4,2,1, 所以 如果用戶要想擁有這三個權(quán)限 就必須? chomd 7? , 即 7=4+2+1 表明 這個用戶具有rwx權(quán)限,如果只想這個用戶具有r,x權(quán)限 那么就 chomd 5即可

說道此處就要涉及到數(shù)據(jù)庫了。

通常 我們的數(shù)據(jù)表中 可能會包含各種狀態(tài)屬性, 例如 blog表中 , 我們需要有字段表示其是否公開,是否有設(shè)置密碼,是否被管理員封鎖,是否被置頂?shù)鹊取?也會遇到在后期運維中,策劃要求增加新的功能而造成你需要增加新的字段。

這樣會造成后期的維護困難,數(shù)據(jù)庫增大,索引增大的情況。 這時使用位運算就可以巧妙的解決。

例如

<?php
define('B_PUBLIC',1);? // 公開
define('B_PASSWORD',2);? // 加密
define('B_LOCK',4); // 封鎖
define('B_TOP',8); // 置頂
?>

-- 公開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;
--查詢所有被置頂?shù)腷log
SELECT * FROM blog WHERE status & 8;

雖然節(jié)省了空間,但是由于沒有辦法對status字段使用索引,所以如何使用來優(yōu)化查詢才是最重點的。

總結(jié)

以上是生活随笔為你收集整理的mysql 使用位运算的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。