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 of1
inBOOLEAN
Mijn conclusie zou zijn:
- Je moet de
WHERE IS flag
gebruiken of gewoonWHERE 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.