Saltar al contenido

Qué tipo de datos MySQL usar para almacenar valores booleanos

Si encuentras algún detalle que no comprendes puedes dejarlo en la sección de comentarios y trataremos de ayudarte lo mas rápido que podamos.

Solución:

Para MySQL 5.0.3 y superior, puede usar BIT. El manual dice:

A partir de MySQL 5.0.3, el tipo de datos BIT se usa para almacenar valores de campo de bits. Un tipo de BIT(M) permite el almacenamiento de valores de M bits. M puede variar de 1 a 64.

De lo contrario, de acuerdo con el manual de MySQL, puede usar BOOL o BOOLEANque por el momento son alias de tinyint(1):

Bool, Boolean: Estos tipos son sinónimos de TINYINT(1). Se considera un valor de cero false. Se consideran valores distintos de cero true.

MySQL también establece que:

Tenemos la intención de implementar el manejo completo de tipos booleanos, de acuerdo con SQL estándar, en una futura versión de MySQL.

Referencias: http://dev.mysql.com/doc/refman/5.5/en/numeric-type-overview.html

BOOL y BOOLEAN son sinonimos de TINYINT(1). cero es falsecualquier otra cosa es true. Más información aquí.

Esta es una solución elegante que aprecio bastante porque usa cero bytes de datos:

some_flag CHAR(0) DEFAULT NULL

para configurarlo trueestablecer some_flag = '' y para configurarlo falseestablecer some_flag = NULL.

Entonces para probar truecomprueba si some_flag IS NOT NULLy para probar falsecomprueba si some_flag IS NULL.

(Este método se describe en “MySQL de alto rendimiento: optimización, copias de seguridad, replicación y más” por Jon Warren Lentz, Baron Schwartz y Arjen Lentz).

Valoraciones y comentarios

Agradecemos que desees añadir valor a nuestra información participando con tu experiencia en los informes.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *