Поиск
Тип ENUM
ЕЫОМ (перечисление)- это строковый объект, имеющий значение, выбранное из списка допустимых, которые явно перечислены в спецификации столбца во время создания таблицы.
При некоторых условиях значение может быть также пустой строкой () или NULL:
- Если вы вставляете недопустимое значение в столбец типа ЕТШ (то есть, строку, которой нет в списке допустимых значений), то вставляется пустая строка в качестве специального ошибочного значения. Эту строку можно отличить от нормальной пустой строки по тому признаку, что она имеет числовое значение 0.
Подробнее об этом будет сказано далее. - Если столбец типа ENUM объявлен как допускающий значение NULL, то NULL - это корректное значение для него, и это значение по умолчанию. Если же столбец объявлен как NOT NULL, то значением по умолчанию будет первое из ее списка допустимых значений.
- Значения из списка допустимых, указанных в спецификации столбца, пронумерованы, начиная с 1.
- Индексное значение пустой строки равно 0. Это означает, что вы можете использовать следующий оператор SELECT, чтобы найти строки, в которые вставлялось неверное значение ENUM:
mysql SELECT * FROM имя_таблицы WHERE столбец_епит = 0;
- Индекс значения NULL равен NULL.
Например, столбец, определенный как ENUM (' one',' two',' three'), может иметь любое из значений, показанных ниже. Соответствующий каждому значению числовой индекс также показан:

Перечисление может иметь максимум 65535 элементов.
Начиная с версии MySQL 3.23.51, завершающие пробелы автоматически удаляются из значений-членов ENUM при создании таблицы.
Когда столбцу ENUM присваивается значение, регистр символов роли не играет. Однако значения, извлеченные из столбца позже, отображаются в нижнем регистре, как было при определении столбца.
Если вы извлекаете значение ENUM в числовом контексте, возвращается индекс значения столбца. Например, вы можете извлечь числовые значения столбца ENUM следующим образом:
mysql SELECT столбец_епит + О FROM имя_таблицы;
Если вы сохраняете число в столбце ENUM, число рассматривается как индекс и сохраняемое значение - это член перечисления с этим индексом. (Однако это не работает с load data INFILE, который трактует весь ввод как строки.) Мы не советуем определять столбцы ENUM со значениями, выглядящими как числа, потому что это легко может привести к путанице. Например, следующий столбец имеет перечислимые строковые значения '0', '1' и '2', но числовыми значениями индекса будут 1, 2 и 3:
numbers ENUM('O', Ч', '2')
Значения ENUM сортируются в соответствии с порядком, в котором члены перечислений приведены в спецификации столбца (Другими словами, значения ENUM сортируются в соответствии с их числовыми индексами.) Например ' а' предшествует ' b' для ENUM (' а',' b'), но ' b' предшествует ' а' для ENUM (' b',' а'). Пустые строки предшествуют непустым строкам, а значения NULL предшествуют всем остальным. Чтобы предотвратить неожиданные результаты, определяйте списки значений ENUM в алфавитном порядке. Вы также можете применить GROUP BY CAST (столбец AS VARCHAR) или GROUP BY CONCAT (столбец), чтобы обеспечить сортировку столбца в лексическом порядке, а не по порядку номеров индексов.Если вы хотите просмотреть все возможные значения столбца ENUM, воспользуйтесь SHOW COLUMNS FROM имя_таблицы LIKE столбец_епиш и проанализируйте определение ЕШМ во втором столбце вывода.