Pirobits
  

MySQL: Tipo de dato ENUM

alberto avatar Alberto Sola · 4/24/2024

Hoy he descubierto que MySQL tiene un tipo de dato que es un ENUM. Este permite definir hasta 2^16 ó 65536 valores diferentes. La peculiaridad es que puedes definir un conjunto de valores como "estado" => "pending", "wip", "done", y estos el propio MySQL los convierte en valores 1, 2, 3... Importante: los valores empiezan en 1 y no 0. Destacar que puede tener tanto un valor DEFAULT como puede ser NULLABLE y en este caso, si no está definido, el valor del campo será NULL.

Para utilizarlo podemos crear una tabla de ejemplo:

CREATE TABLE tasks
id int unsigned auto_increment,
status enum('pending','wip', 'done'),
primary key(id)
);

Y podemos insertar, leer y seleccionar datos tanto filtrando por los valores de tipo string:

INSERT INTO tasks(status) VALUES ('pending');
INSERT INTO tasks(status) VALUES ('wip');
INSERT INTO tasks(status) VALUES ('done');

SELECT * FROM tasks WHERE status = "pending";
SELECT * FROM tasks WHERE status = 1;

También funcionaría utilizando los valores numéricos, aunque en este caso creo que pierde la magia.

¿Te ha parecido interesante el artículo?¡ Únete a la comunidad para recibir contenido exclusivo !

Aprende sobre creación de producto y desarrollo de software

Contenido Exclusivo

Conocimiento que transforma

Escribo artículos profundos sobre desarrollo de software y creación de productos.

Experiencia real

Te cuento lo que aprendo en mi día a día trabajando como ingeniero de software y tech lead.

Directo al grano

Valoro tu tiempo y te envío, como mucho, un mail a la semana, con un resumen de las novedades más importantes.

¿Te apuntas?

Valoro tu privacidad, sólo envío contenido de calidad.

Ya somos más de 50 profesionales

Lo último que he escrito en el blog