O MySQL está realmente enganando você. Ele não tem um tipo de coluna booleana :
Além disso, os literais booleanos não são assim :
Considerando que:
- Muitos sistemas de banco de dados também não possuem booleanos (pelo menos no SQL padrão e nos tipos de coluna)
- O MySQL não tem uma maneira fácil de aplicar
0
ou1
emBOOLEAN
Minha conclusão seria:
- Você terá que usar
WHERE IS flag
ou apenasWHERE flag
porque=
simplesmente não funciona corretamente. Qual deles, é possivelmente uma questão de preferência. - Seja qual for a sua escolha, nenhuma opção será independente do fornecedor. Por exemplo, o Oracle nem executa nenhum deles.
Editar: se a plataforma cruzada for uma obrigação, eu usaria isso:
WHERE flag=0
WHERE flag<>0
Tenho certeza que todos nós já fizemos isso muitas vezes.