MySQL sebenarnya membodohi Anda. tidak memiliki jenis kolom boolean sama sekali :
Selain itu, literal boolean tidak seperti itu :
Mengingat:
- Banyak sistem database juga tidak memiliki boolean (setidaknya dalam SQL standar dan tipe kolom)
- MySQL tidak memiliki cara mudah untuk menerapkan
0
atau1
diBOOLEAN
Kesimpulan saya adalah:
- Anda harus menggunakan
WHERE IS flag
atau cukupWHERE flag
karena=
hanya tidak bekerja dengan benar. Yang mana, mungkin masalah preferensi. - Apa pun yang Anda pilih, tidak ada opsi yang independen dari vendor. Misalnya, Oracle bahkan tidak akan menjalankan keduanya.
Sunting: jika lintas platform adalah suatu keharusan, saya akan memilih ini:
WHERE flag=0
WHERE flag<>0
Saya yakin kita semua sudah sering melakukannya.