Pirobits
  

MySQL: Tipo de dato ENUM

alberto avatar Alberto Sola · 4/24/2024 · 1 min

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.

Si te ha resultado útil este artículo agradecería si te suscribes a mi newsletter. Recibirás contenido exclusivo de calidad y también me ayudarás enormemente. Cada suscripción apoya el trabajo que realizo y me permite conocer mejor los temas que te interesan, de forma que puedo mejorar los conocimientos que comparto contigo.


Posts recientes