sql >> Databáze >  >> RDS >> Mysql

MySQL:=true vs je pravda na BOOLEAN. Kdy je vhodné který použít? A který z nich je nezávislý na prodejci?

MySQL vás ve skutečnosti klame. vůbec nemá booleovský typ sloupce :

Také booleovské literály takové nejsou :

Vzhledem k tomu, že:

  • Mnoho databázových systémů také nemá booleany (alespoň ve standardních SQL a typech sloupců)
  • MySQL nemá snadný způsob, jak vynutit 0 nebo 1 v BOOLEAN

Můj závěr by byl:

  • Budete muset použít WHERE IS flag nebo jen WHERE flag protože = prostě nefunguje správně. Který z nich, je možná otázkou preferencí.
  • Ať si vyberete cokoli, žádná možnost nebude nezávislá na prodejci. Oracle například ani jeden z nich nespustí.

Upravit: pokud je multiplatformní nutností, zvolil bych toto:

WHERE flag=0
WHERE flag<>0

Jsem si jistý, že jsme to všichni udělali mnohokrát.



  1. uložit TEXT/BLOB do stejné tabulky nebo ne?

  2. C++ / mysql Connector - nedefinovaný odkaz na get_driver_instance - již vyzkoušeli snadné věci

  3. Jak zrušit omezení v SQL Server (T-SQL)

  4. Může MySQL Nested Select vrátit seznam výsledků