1. ホーム
  2. mysql

[解決済み] ブーリアン値を格納するために使用するMySQLデータ型

2022-03-16 22:56:19

質問

MySQL には「boolean」データ型がないようなので、MySQL で真/偽の情報を格納するためにどのデータ型を「悪用」しますか?

特に、PHPスクリプトから/への書き込みと読み出しのコンテキストで。

私はこれまで、いくつかのアプローチを使い、見てきました。

  • 0/1の値を含むtinyint, varcharフィールド。
  • 文字列 '0'/'1' または 'true'/'false' を含む varchar フィールド
  • そして最後に、'true'/'false' の2つのオプションを含む enum Fields です。

上記のどれもが最適とは思えません。私はtinyint 0/1バリアントを好む傾向があります。PHPの自動型変換はむしろ簡単にブール値を与えてくれるからです。

では、どのデータ型を使っているのでしょうか?私が見落としている、ブーリアン値のために設計された型はありますか?また、どちらかの型を使用することによるメリット/デメリットはありますか?

解決方法は?

MySQL 5.0.3以上の場合、以下のようになります。 BIT . とマニュアルに書いてあります。

MySQL 5.0.3 では、BIT データ型はビットフィールドの格納に使用されます。 の値です。BIT(M)の型は、Mビット値の保存を可能にします。Mは 1から64まで。

それ以外の場合、MySQL のマニュアルによると BOOL または BOOLEAN のエイリアスで、現時点では タイニーイント (1):

Bool、Boolean。これらの型は、以下の同義語です。 TINYINT (1). 値として ゼロは偽とみなされる。ゼロ以外の の値は真とみなされる。

MySQLは、次のようにも述べている。

私たちは、完全なブーリアン の型処理に準拠した 標準的なSQLで、将来のMySQLで をリリースしました。

参考文献 http://dev.mysql.com/doc/refman/5.5/en/numeric-type-overview.html