How can I add a Boolean field to MySQL? How can I add a Boolean field to MySQL? php php

How can I add a Boolean field to MySQL?


Yep, TINYINT(1) is the way to go... you can also use BOOL or BOOLEAN which are synonyms (so it does not make a difference).

0 evaluates to false in PHP and 1 to true (actually, any other number than 0 evaluates to true, but 1 is normally used).


I prefer none of bool, BIT, TINYINT(1). because none of them are actually boolean. You can check the following link for 'why':

http://dev.mysql.com/doc/refman/5.0/en/numeric-type-overview.html

I would better use : ENUM ('false', 'true') not null - as datatype. You can pass 'true' or 'false' (as strings) from PHP. And it will take only 1 byte to store it!


You're correct that the general solution is tinyint(1). You can use BOOL for short:

CREATE TABLE example (         flag BOOL       );