Mysql
 sql >> база данни >  >> RDS >> Mysql

MySQL:=true vs is true на BOOLEAN. Кога е препоръчително да използвате кой? И кой е независим от доставчика?

MySQL всъщност ви заблуждава. Той изобщо няма тип булева колона :

Също така булевите литерали не са такива :

Като се има предвид, че:

  • Много системи за бази данни също нямат булеви стойности (не поне в стандартните типове SQL и колони)
  • MySQL няма лесен начин за налагане на 0 или 1 в BOOLEAN

Моето заключение би било:

  • Ще трябва да използвате WHERE IS flag или просто WHERE flag защото = просто не работи правилно. Кое, вероятно е въпрос на предпочитание.
  • Каквото и да изберете, нито една опция няма да бъде независима от доставчика. Например Oracle дори няма да стартира нито един от тях.

Редактиране: ако кросплатформеността е задължителна, бих избрал това:

WHERE flag=0
WHERE flag<>0

Сигурен съм, че всички сме го правили много пъти.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. АКО Условие Изпълнете заявка, иначе Извършете друга заявка

  2. Ръководство за проектиране на база данни за диспечера на задачите в MySQL

  3. Как да използвам cURL, за да извличам конкретни данни от уебсайт и след това да ги запазя в моята база данни с помощта на php

  4. Вземете последния ред с group by и Laravel

  5. Грешка при създаването на таблица