日常開發中經常用到乙個酒店下有多個標籤比如酒店的風格特點有:無柱
場地方正
豪華
美食
自然採光
園林草坪
溫泉
景區周邊
水景
泳池
中式院落
西式裝修
少數民族
會場進車
高爾夫
我們一般都會對其進行編號:
存放在資料庫時主要是存放該值的key值,如果乙個酒店只有乙個標籤是沒什麼問題的,但是如果乙個酒店有多個標籤,並且又需要支援單個標籤也可以篩選出該酒店就需要用到位運算,那具體這個位運算怎麼設計呢?需要我們一起看看。
我們假設某個酒店存在無柱
美食
泳池
三個標籤
這樣我們可以設計乙個長度為15的二進位制數,滿足條件的位為1,不滿足的為0,那該酒店的二進位制數為000001000001001
轉換為十進位制為521
這樣我們存放到資料庫裡面的數值為521
那這樣怎麼獲取該酒店是否有該標籤呢?
我們可以採用位運算的與(&)運算:兩個位都為1時,結果才為1
那如果我們要判斷無柱
這個標籤是否存在該酒店
首先獲取代表無柱
的二進位制數000000000000001
,
然後轉換成10進製為1,
最後我們可以通過tags & 1
來判斷該酒店是否有無柱
這個標籤。
資料庫查詢語句為:
select * from hotel_info where (tags & 1);
select * from hotel_info where (tags & 4);
select * from hotel_info where (tags & 10);
好了,今天的分享就到這裡,明天見 利用位運算解決組合問題
求n個資料的組合 由數學知識,可以知道一共有2n個子集 用二進位制進行對照會非常直觀 子集空集 a1a0 a1 a0 a2a2,a0 a2,a1 a0,a1,a2 二進位制數 0 0 0 0 1 0 0 0 1 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 給出n個資料,問從這n個資料...
位運算解決N 皇后問題
描述 位運算是定義在整數上的運算。但在做位運算的時候,並不把整數看作整數,而是將它們看做一系列二進位制數字,逐位進行運算。位運算有6種,他們的名稱,運算子及運算規則如下 與 and 5 6 4 101 110 100 或 or 5 6 7 101 110 111 異或 xor 5 6 3 101 1...
多標籤分類問題
多類分類與多標籤分類 深度學習 多標籤分類問題 深度學習,opencv3 mxnet等影象處理相關的demo 深度學習模型處理多標籤 multi label 分類任務 好,介紹了整個處理流程 多標籤 multi label 分類任務 和 多分類 multi class 任務的區別 這裡筆者強調一下多...