MySQL で ビットマスク を扱う
MySQLで、テーブルの項目(type)がビットとして保存されている場合
1 | 真面目 |
2 | 面白い |
4 | 硬派 |
8 | 草食系 |
といったtypeがあるとする
検索条件に指定する
「まじめ」のみを検索したいときは
select * from hito where type & 1;
真面目と硬派のどちらかがチェックされているデータを抽出したい場合
select * from hito where type & 1 or type & 4;
真面目と硬派がどちらもチェックされているデータを抽出する場合
select * from hito where type & 1 and type & 4;
検索結果にテキストで表示する
select if(type & 1, '真面目', '') as '真面目' from hito;