Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

MySQL:=true vs é true em BOOLEAN. Quando é aconselhável usar qual? E qual deles é independente do fornecedor?


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 ou 1 em BOOLEAN

Minha conclusão seria:
  • Você terá que usar WHERE IS flag ou apenas WHERE 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.