Bueno, ahora te lo aclaro entonces:
No puedes poner el uno (1) entre comillas sin indicar la "b" de bit, porque se va de rango.
Miremosló así y verás el efecto:
Código MySQL:
Ver originalQuery OK, 0 rows affected (0.00 sec)
Query OK, 0 rows affected (0.00 sec)
Query OK, 1 row affected (0.02 sec)
Query OK, 1 row affected (0.00 sec)
ERROR
1406 (22001):
Data too long for
column 'b' at row
1Query OK, 1 row affected (0.00 sec)
+------+
| b |
+------+
| 0 |
| 1 |
| 1 |
+------+
Si en lugar de un sólo bit, pongo más, podemos ver el número que realmente se generaba:
Código MySQL:
Ver originalQuery OK, 0 rows affected (0.01 sec)
Query OK, 0 rows affected (0.05 sec)
Query OK, 1 row affected (0.00 sec)
Query OK, 1 row affected (0.00 sec)
Query OK, 1 row affected (0.00 sec)
Query OK, 1 row affected (0.00 sec)
+------+
| b |
+------+
| 0 |
| 1 |
| 49 |
| 1 |
+------+
¿Ver cómo el "1" se transforma en 49?
Es porque sin el bit se interpreta como caracter "1" y hace una conversión implícita según charset.
Mi sugerencia sería que si quieres usar la sintaxis ortodoxa, bien, pero de lo contrario, pon los números
sin apóstrofos.