MySQL en realidad te está engañando. no tiene ningún tipo de columna booleana :
Además, los literales booleanos no son tales :
Teniendo en cuenta que:
- Muchos sistemas de bases de datos tampoco tienen booleanos (no al menos en SQL estándar y tipos de columnas)
- MySQL no tiene una manera fácil de hacer cumplir
0
o1
enBOOLEAN
Mi conclusión sería:
- Tendrás que usar
WHERE IS flag
o simplementeWHERE flag
porque=
simplemente no funciona correctamente. Cuál es posiblemente una cuestión de preferencia. - Sea cual sea su elección, ninguna opción será independiente del proveedor. Por ejemplo, Oracle ni siquiera ejecutará ninguno de ellos.
Editar: si la multiplataforma es imprescindible, optaría por esto:
WHERE flag=0
WHERE flag<>0
Estoy seguro de que todos lo hemos hecho muchas veces.