MySQL тип данных SET

Тип данных SET в MySQL

Тип данных SET в MySQL

MySQL тип данных SET позволяет сохранить ноль или несколько величин, характеризующих одну строку в таблице. Например, одной книге может соответствовать несколько жанров одновременно, а некоторая одежда может быть использована в разные сезоны. Хранить жанры в нескольких колонках — плохая идея, потому можно сохранить их в типе данных SET. Поле с этим типом данных помечается SET('one', 'two') и теперь, строки этого столбца могут иметь значения », ‘one’, ‘two’, ‘one,two’. Максимально количество хранимых величин — 64. Будьте внимательны! MySQL-таблица не может хранить более 255 уникальных элементов из типов SET и ENUM.

MySQL тип данных SET

SET элемент Десятичное значение бинарное значение
'a' 1 0001
'b' 2 0010
'c' 4 0100
'd' 8 1000

Работа с полями типа данных SET

Создание поля типа SET в MySQL-таблице:
CREATE TABLE myset (col SET('a', 'b', 'c', 'd'));
Вставка данных в поля с SET:
INSERT INTO myset (col) VALUES ('a,d'), ('d,a'), ('a,d,d'), ('d,a,d');
Выборка данных из поля-SET:
SELECT col FROM myset;
Функции для работы с SET-колонками:
SELECT * FROM tbl_name WHERE FIND_IN_SET('value',set_col)>0;
SELECT * FROM tbl_name WHERE set_col LIKE '%value%';
SELECT * FROM tbl_name WHERE set_col & 1;
SELECT * FROM tbl_name WHERE set_col = 'val1,val2';

Добавить комментарий