Mysql
 sql >> Baza danych >  >> RDS >> Mysql

MySQL:=true vs is true w BOOLEAN. Kiedy wskazane jest użycie którego? A który jest niezależny od dostawcy?

MySQL faktycznie cię oszukuje. w ogóle nie ma typu kolumny logicznej :

Ponadto litery logiczne nie są takie :

Biorąc pod uwagę, że:

  • Wiele systemów baz danych również nie ma wartości logicznych (przynajmniej w standardowych typach SQL i kolumnach)
  • MySQL nie ma łatwego sposobu na wymuszenie 0 lub 1 w BOOLEAN

Mój wniosek byłby następujący:

  • Będziesz musiał użyć WHERE IS flag lub po prostu WHERE flag ponieważ = po prostu nie działa poprawnie. Który z nich jest prawdopodobnie kwestią preferencji.
  • Cokolwiek wybierzesz, żadna opcja nie będzie niezależna od dostawcy. Na przykład Oracle nawet nie uruchomi żadnego z nich.

Edytuj: jeśli wieloplatformowość jest koniecznością, wybrałbym to:

WHERE flag=0
WHERE flag<>0

Jestem pewien, że wszyscy robiliśmy to wiele razy.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Klauzula LIMIT MySQL równoważna dla serwera SQL SERVER

  2. Neo4j - Upuść indeks za pomocą Cypher

  3. Odpowiednik funkcji SQLServer SCOPE_IDENTITY() w mySQL?

  4. @GeneratedValue polimorficzna abstrakcyjna nadklasa nad MySQL

  5. MySQL, gdzie NIE W tablicy nazw?