sql >> データベース >  >> RDS >> Mysql

MySQL:=true対BOOLEANではtrue。いつ使用することをお勧めしますか?そして、どちらがベンダーに依存していませんか?

    MySQLは実際にあなたをだましています。 ブール列タイプはまったくありません

    また、ブールリテラルはそのようなものではありません

    それを考慮して:

    • 多くのデータベースシステムにはブール値もありません(少なくとも標準のSQLおよび列タイプでは)
    • MySQLには、0を適用する簡単な方法がありません。 または1 BOOLEAN

    私の結論は次のとおりです。

    • WHERE IS flagを使用する必要があります または単にWHERE flag =だから 単に正しく動作しません。どちらが好みの問題かもしれません。
    • どのオプションを選択しても、ベンダーに依存しないオプションはありません。たとえば、Oracleはどちらも実行しません。

    編集: クロスプラットフォームが必須の場合、私はこれを選びます:

    WHERE flag=0
    WHERE flag<>0
    

    私たちは皆、それを何度もやったと確信しています。



    1. Rails4session.idは時々nil

    2. `INSERT ... ON DUPLICATE KEY UPDATE`で2行が影響を受けるのはなぜですか?

    3. 例を使用したOPENJSONの概要(SQL Server)

    4. MySQLのJSON配列を行に変換する