>its the length of the integer...
>is use it like a bool, where it is set to 1
Not exactly. Depending on the exact configuration, INT supports values in the range -2147483648 to 4294967295, i.e.INT(11). INT(100) is then a nonsense. In fact, defining the scale of INT at all only makes sense in the context of a ZEROFILL declaration, which can in any case be simulated through another process.
By way of illustration...
CREATE TABLE my_ints(i3 INT(3) ZEROFILL,i5 INT(5) ZEROFILL);
INSERT INTO my_ints VALUES (1,1),(2,2),(3,3),(1000,100000);
SELECT * FROM my_ints;
+------+--------+
| i3 | i5 |
+------+--------+
| 001 | 00001 |
| 002 | 00002 |
| 003 | 00003 |
| 1000 | 100000 |
+------+--------+
Again, depending on configuration, TINYINT supports values in the range -128 to 255. As it only requires 1-byte storage (as opposed to the 4-byte storage of INT) it's a much better candidate for your bool.
Edited 1 time(s). Last edit at 12/09/2011 06:31AM by laptop alias.