sql >> Database >  >> RDS >> Mysql

MySQL:=waar vs is waar op BOOLEAN. Wanneer is het raadzaam om welke te gebruiken? En welke is leveranciersonafhankelijk?

MySQL houdt je eigenlijk voor de gek. Het heeft helemaal geen booleaans kolomtype :

Ook zijn de boolean literals niet zo :

Gezien het volgende:

  • Veel databasesystemen hebben ook geen booleans (niet in het minst in standaard SQL- en kolomtypen)
  • MySQL heeft geen gemakkelijke manier om 0 af te dwingen of 1 in BOOLEAN

Mijn conclusie zou zijn:

  • Je moet de WHERE IS flag gebruiken of gewoon WHERE flag omdat = werkt gewoon niet goed. Welke, is mogelijk een kwestie van voorkeur.
  • Wat je ook kiest, geen enkele optie is onafhankelijk van de leverancier. Oracle zal bijvoorbeeld geen van beide uitvoeren.

Bewerken: als cross-platform een ​​must is, zou ik hiervoor gaan:

WHERE flag=0
WHERE flag<>0

Ik weet zeker dat we het allemaal al vaak hebben gedaan.



  1. Variabele parameter/resultaatbinding met voorbereide instructies

  2. URL-verkortingssite

  3. Postgres-dump laden nadat docker heeft samengesteld

  4. Hoe mysql-tabelrijen in kolommen te transponeren