MySQL narrer dig faktisk. Den har slet ikke en boolesk kolonnetype :
Desuden er boolean-literals ikke sådanne :
I betragtning af at:
- Mange databasesystemer har heller ikke booleaner (ikke i det mindste i standard SQL og kolonnetyper)
- MySQL har ikke en nem måde at håndhæve
0
på eller1
iBOOLEAN
Min konklusion ville være:
- Du skal bruge
WHERE IS flag
eller bareWHERE flag
fordi=
virker simpelthen ikke korrekt. Hvilken, er muligvis et spørgsmål om præference. - Uanset hvad du vælger, vil ingen mulighed være leverandøruafhængig. Oracle vil f.eks. ikke engang køre nogen af dem.
Rediger: hvis cross-platform er et must, ville jeg gå efter dette:
WHERE flag=0
WHERE flag<>0
Jeg er sikker på, at vi alle har gjort det mange gange.