# MySQL の BIT 型の利用例
```sql
CREATE TABLE `bit_example` (
`id` INT NOT NULL AUTO_INCREMENT,
`bits` BIT(3), -- 選択肢の数より大きくしておく
`memo` VARCHAR(10),
PRIMARY KEY (`id`)
);
```
```sql
-- 100: バナナ
-- 010: みかん
-- 001: りんご
INSERT INTO `bit_example` (`bits`, `memo`) VALUES (b'000', "選択なし");
INSERT INTO `bit_example` (`bits`, `memo`) VALUES (b'010', "みかん");
INSERT INTO `bit_example` (`bits`, `memo`) VALUES (b'110', "みかんとバナナ");
INSERT INTO `bit_example` (`bits`, `memo`) VALUES (b'001', "りんご");
```
```sql
SELECT * FROM `bit_example`;
```
| id | bits | memo |
| --- | ---- | -------------- |
| 1 | 0 | 選択なし |
| 2 | 2 | みかん |
| 3 | 6 | みかんとバナナ |
| 4 | 1 | りんご |
```sql
-- みかんを選んだ人
SELECT * FROM `bit_example` WHERE (`bits` & b'010') = b'010';
```
| id | bits | memo |
| --- | ---- | -------------- |
| 2 | 2 | みかん |
| 3 | 6 | みかんとバナナ |
```sql
-- みかんとバナナを同時に選んだ人
SELECT * FROM `bit_example` WHERE (`bits` & b'110') = b'110';
```
| id | bits | memo |
| --- | ---- | -------------- |
| 3 | 6 | みかんとバナナ |
```sql
-- りんごかみかんを選んだ人
SELECT * FROM `bit_example` WHERE (`bits` & b'010') != 0b0 OR (`bits` & b'001') != 0b0;
```
| id | bits | memo |
| --- | ---- | -------------- |
| 2 | 2 | みかん |
| 3 | 6 | みかんとバナナ |
| 4 | 1 | りんご |
```sql
-- バナナを選ばなかった人
SELECT * FROM `bit_example` WHERE (`bits` & b'100') = 0b0;
```
| id | bits | memo |
| --- | ---- | -------- |
| 1 | 0 | 選択なし |
| 2 | 2 | みかん |
| 4 | 1 | りんご |
```