資料庫單個字段儲存多種組合狀態的演算法設計

2021-10-10 05:36:21 字數 453 閱讀 7884

有0,1,2,3四種使用場景,一條資料可以支援四種場景的組合場景。要求給出乙個場景n,查出支援場景n的所有資料。

首先數字占用空間最小,使用乙個二進位制超過4位的數來儲存支援的場景。四位分別代表乙個場景,1表示支援,0表示不支援。

接收到場景值n後,將1左移(<<)n位得到值m,與字段進行&運算,得到的值如果等於m,則命中資料。

場景值n = 1

將1左移n位 得到 m=0000 0010

資料庫中的字段 x=0000 1111

m&x=0000 0010 結果只有兩種等於m 或者等於0 等於m則支援

sql:select * from table_name where bitand(column,m) =m;

這種方式對欄位使用了函式,無法命中索引。

計算出所有支援的數,使用column in ()搜尋。

MySQL資料庫將多條記錄的單個字段合併成一條記錄

mysql資料庫將多條記錄的單個字段合併成一條記錄的操作是本文我們主要要介紹的內容,接下來就讓我們一起來了解一下這部分內容吧。測試用表結構 create table if not exists tet id int 11 not null,name varchar 255 not null,url ...

資料庫個字段型別

好比c 中,定義int型別需要多少位元組,定義double型別需要多少位元組一樣,mysql對錶每個列中的資料也會實行嚴格控制,這是資料驅動應用程式成功的關鍵。m前言 好比c 中,定義int型別需要多少位元組,定義double型別需要多少位元組一樣,mysql對錶每個列中的資料也會實行嚴格控制,這是...

mysql資料庫用乙個字段表示多個狀態

在實際的開發中,建資料庫表的有可能會因為最初的表設計不能滿足所用,為了標記某種狀態需要重新增加欄位,但是資料庫中如果有幾百萬條真實的資料,往往改變表結構是很危險的操作 有沒有辦法用乙個字段表示多個狀態,但是每個狀態不會互相干擾呢?此時我們可以用到位操作 如果是表示刪除可以用1,未刪除用0 第一位 如...