<p>Since MySQL doesn't seem to have any 'boolean' data type, which data type do you 'abuse' for storing true/false information in MySQL?</p>

<p>Especially in the context of writing and reading from/to a PHP script.</p>

<p>Over time I have used and seen several approaches:</p>

<ul>
<li>tinyint, varchar fields containing the values 0/1,</li>
<li>varchar fields containing the strings '0'/'1' or 'true'/'false'</li>
<li>and finally enum Fields containing the two options 'true'/'false'.</li>
</ul>

<p>None of the above seems optimal. I tend to prefer the tinyint 0/1 variant, since automatic type conversion in PHP gives me boolean values rather simply.</p>

<p>So which data type do you use? Is there a type designed for boolean values which I have overlooked? Do you see any advantages/disadvantages by using one type or another?</p>

I use TINYINT(1) in order to store boolean values in Mysql.
I don't know if there is any advantage to use this... But if i'm not wrong, mysql can store boolean (BOOL) and it store it as a tinyint(1)
http://dev.mysql.com/doc/refman/5.0/en/other-vendor-data-types.html