MySQL lurar dig faktiskt. Den har inte alls en boolesk kolumntyp :
Dessutom är de booleska bokstaverna inte sådana :
Med tanke på att:
- Många databassystem har inte heller booleaner (inte åtminstone i standard SQL- och kolumntyper)
- MySQL har inte ett enkelt sätt att genomdriva
0
eller1
iBOOLEAN
Min slutsats skulle vara:
- Du måste använda
WHERE IS flag
eller baraWHERE flag
eftersom=
fungerar helt enkelt inte korrekt. Vilken är möjligen en fråga om preferens. - Vad du än väljer kommer inget alternativ att vara leverantörsoberoende. Oracle kommer till exempel inte ens att köra någon av dem.
Redigera: om plattformsoberoende är ett måste, skulle jag satsa på det här:
WHERE flag=0
WHERE flag<>0
Jag är säker på att vi alla har gjort det många gånger.