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

Comparto mis aprendizajes construyendo productos de software, novedades y artículos que me parecen interesantes. Voy directo al grano y te envío, como mucho, un mail a la semana. Qué, ¿te apuntas?

Ya son más de 50 creadores que reciben estos aprendizajes 🚀

Lo último que he escrito en el blog