MySQL ti sta effettivamente prendendo in giro. non ha affatto un tipo di colonna booleana :
Inoltre, i letterali booleani non sono tali :
Considerando che:
- Neanche molti sistemi di database hanno booleani (non almeno in SQL standard e tipi di colonne)
- MySQL non ha un modo semplice per imporre
0
o1
inBOOLEAN
La mia conclusione sarebbe:
- Dovrai usare
WHERE IS flag
o semplicementeWHERE flag
perché=
semplicemente non funziona correttamente. Quale, forse è una questione di preferenza. - Qualunque cosa tu scelga, nessuna opzione sarà indipendente dal fornitore. Ad esempio, Oracle non eseguirà nemmeno nessuno dei due.
Modifica: se il multipiattaforma è un must, sceglierei questo:
WHERE flag=0
WHERE flag<>0
Sono sicuro che l'abbiamo fatto tutti un sacco di volte.