Si hallas alguna incompatibilidad en tu código o trabajo, recuerda probar siempre en un ambiente de testing antes añadir el código al proyecto final.
Solución:
Algunos “front-ends”, con la opción “Usar booleanos” habilitada, tratarán todas las columnas TINYINT(1) como booleanas y viceversa.
Esto le permite, en la aplicación, usar VERDADERO y FALSO en lugar de 1 y 0.
Esto no afecta en absoluto a la base de datos, ya que está implementado en la aplicación.
no hay realmente un BOOLEAN
escriba MySQL. BOOLEAN es solo un sinónimo de TINYINT(1), y TRUE y FALSE son sinónimos de 1 y 0.
Si la conversión se realiza en el compilador, no habrá diferencia en el rendimiento de la aplicación. De lo contrario, la diferencia aún no se notará.
Debe usar cualquier método que le permita codificar de manera más eficiente, aunque no usar la función puede reducir la dependencia de ese proveedor de “front-end” en particular.
en mysql TRUE
y FALSE
están sinónimos por TINYINT(1)
.
Entonces, por lo tanto, es básicamente lo mismo, pero MySQL se está convirtiendo a 0/1, así que solo use un TINYINT
si eso es más fácil para ti
PD
los rendimiento es probable que sea tan minúsculo (si es que lo es), que si necesita preguntar en StackOverflow, entonces no afectará su base de datos 🙂
Bit
también es una opción si tinyint
no es de tu agrado. Algunos enlaces:
- Qué tipo de datos MySQL usar para almacenar valores booleanos
- ¿Cuál es la diferencia entre BIT y TINYINT en MySQL?
No es sorprendente que haya más información disponible sobre los tipos numéricos en el manual.
Un enlace más: http://blog.mclaughlinsoftware.com/2010/02/26/mysql-boolean-data-type/
Y una cita de la sección de comentarios del artículo anterior:
- TINYINT(1) no es sinónimo de bit(1).
- TINYINT(1) puede almacenar -9 a 9.
- TINYINT(1) SIN FIRMA: 0-9
- BIT(1): 0, 1. (Bit, literalmente).
Editar: esta edición (y respuesta) solo está remotamente relacionada con la pregunta original …
Citas adicionales de Justin Rovang y el autor maclochlainn (sección de comentarios del artículo vinculado).
Disculpe, parece que he sido víctima del substr-ismo: TINYINT(1): -128-+127 TINYINT(1) SIN FIRMAR: 0-255 (Justin Rovang 25 de agosto de 11 a las 4:32 p. m.)
Es cierto, pero la publicación trataba sobre lo que PHPMyAdmin enumeró como booleano, y allí solo usa 0 o 1 de toda la amplia gama de 256 posibilidades. (maclochlainn 25 ago 11 a las 11:35 pm)