MySQL всъщност ви заблуждава. Той изобщо няма тип булева колона :
Също така булевите литерали не са такива :
Като се има предвид, че:
- Много системи за бази данни също нямат булеви стойности (не поне в стандартните типове SQL и колони)
- MySQL няма лесен начин за налагане на
0
или1
вBOOLEAN
Моето заключение би било:
- Ще трябва да използвате
WHERE IS flag
или простоWHERE flag
защото=
просто не работи правилно. Кое, вероятно е въпрос на предпочитание. - Каквото и да изберете, нито една опция няма да бъде независима от доставчика. Например Oracle дори няма да стартира нито един от тях.
Редактиране: ако кросплатформеността е задължителна, бих избрал това:
WHERE flag=0
WHERE flag<>0
Сигурен съм, че всички сме го правили много пъти.