sql >> Base de Datos >  >> RDS >> Mysql

MySQL:=verdadero vs es verdadero en BOOLEAN. ¿Cuándo es recomendable utilizar cuál? ¿Y cuál es independiente del proveedor?

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 o 1 en BOOLEAN

Mi conclusión sería:

  • Tendrás que usar WHERE IS flag o simplemente WHERE 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.