2011-10-05 64 views
11

Mi tabla tiene una columna isSuccessful, fijo el tipo de datos como booleano (0 indica falsa, 1 indica cierto), y por defecto es 0.¿Cómo puedo actualizar los valores booleanos en mysql?

Pero cuando quiero actualizar esta columna utilizando php,

UPDATE .......... SET isSuccessful = 1 WHERE ......... 

no funciona.

Intenté configurar el isSuccessful como 1, cierto, sí, pero ninguno de ellos funcionará.

Entonces, ¿cómo puedo cambiar los valores de isSuccessful?

+4

Lo que describes debería funcionar. Debes estar haciendo otra cosa mal. Por favor, publique la consulta completa. – Hammerite

+4

Definir "no funciona". ¿Estás recibiendo errores? ¿Puedes establecer el valor manualmente en una interfaz de administrador? ¿Estás seguro de que tu cláusula 'WHERE' coincide con algo? – deceze

+0

¿Qué errores obtienes? 'SET isSuccessful = 1' esto funciona para mí desde ... siempre. – Coyote

Respuesta

16

Una simple consulta de actualización debería ser suficiente. Los campos booleanos son, si no recuerdo mal, simplemente son campos tinyint (1) y aceptan alias para 1 y 0 como verdaderos y falsos respectivamente (como cadenas). Lo siguiente debería estar bien. Tal vez si publicó su consulta exacta en lugar de una versión eliminada, ¿alguien podría detectar un problema?

UPDATE `table` SET `isSuccessful` = 1 WHERE `column` = 'criteria' 
+0

De http://dev.mysql.com/doc/refman/5.0/en/numeric-types.html: 'A partir de MySQL 5.0.3, está disponible un tipo de datos BIT para almacenar valores de campo de bits. (Antes de 5.0.3, MySQL interpreta BIT como TINYINT (1).) En MySQL 5.0.3, BIT solo es compatible con MyISAM. MySQL 5.0.5 amplía el soporte de BIT a MEMORY, InnoDB, BDB y NDBCLUSTER. ' –

+1

También puede usar:' SET isSuccessful = b'1'' –

+1

@ypercube Esto supone que el OP establece el tipo de datos en BIT. Sin embargo, está implícito que el tipo de datos BOOLEAN se configuró, lo que implica que es un campo TINYINT. BOOL, BOOLEAN Estos tipos son sinónimos de TINYINT (1). Un valor de cero se considera falso. Los valores distintos de cero se consideran verdaderos. De http://dev.mysql.com/doc/refman/5.0/en/numeric-type-overview.html ¿Esto significa que 'set isSuccessful = b'1'' no funcionaría? –

0

Asegúrese de poner este "`" carácter, que es la misma clave de la "~" en el tamaño izquierda de la tecla "1" en el teclado, que debe hacerlo, si el uso de PHP + MySQL en Linux .

+0

'es opcional .. – Qix

+0

no todo el mundo tiene diseño de EE. UU. – beppe9000

Cuestiones relacionadas