Originariamente inviato da aasmdaa
Mi accodo a questa discussione perchè sono da poco passato a MySQL (da .mdb) e pensavo di fare una figata utilizzando il campo ENUM:

attivo = ENUM ('true','false')

nelle prove però si è evidenziato che il campo non risponde allo stesso modo al true/false, infatti se faccio

Codice PHP:
if ($row['attivo']) {...} 
mi aspetterei in caso di 'false' nel campo che la condizione restituisse appunto false, invece considera il campo sempre a true in quanto è presente del testo.

Comportamento diverso (e corretto) se il campo viene così settato:

attivo = ENUM ('0','1')

Comportamente corretto anche con TINYINT(1) (come segnalato da Razorblade).

Quale consigliate voi per evitare problemi?
se vuoi controllare se c'è "true" devi fare un confronto a stringa, e così "false".
potresti metterci "pippo" e "pluto"
---
La soluzione che consiglio è quella che ho già messo: flag intero e passa la paura (ed è di gran lunga la migliore per la portabilità)