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 BOOLEAN
que 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 false
cualquier 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 NULL
y 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.