Mysql
 sql >> Base de données >  >> RDS >> Mysql

MySQL :=true vs est true sur BOOLEAN. Quand est-il conseillé d'utiliser lequel ? Et lequel est indépendant du fournisseur ?

MySQL vous trompe en fait. Il n'a pas du tout de type de colonne booléenne :

De plus, les littéraux booléens ne sont pas tels :

Considérant que :

  • De nombreux systèmes de bases de données n'ont pas non plus de booléens (pas du moins dans le SQL standard et les types de colonnes)
  • MySQL n'a pas de moyen facile d'appliquer 0 ou 1 en BOOLEAN

Ma conclusion serait :

  • Vous devrez utiliser l'indicateur WHERE IS flag ou simplement WHERE flag car = ne fonctionne tout simplement pas correctement. Lequel est peut-être une question de préférence.
  • Quel que soit votre choix, aucune option ne sera indépendante du fournisseur. Par exemple, Oracle n'exécutera même aucun d'eux.

Modifier : si le multiplateforme est indispensable, je choisirais ceci :

WHERE flag=0
WHERE flag<>0

Je suis sûr que nous l'avons tous fait de nombreuses fois.