1. ホーム
  2. mysql

[解決済み] BOOLEANまたはTINYINTの混乱

2023-01-01 11:17:08

質問

私はあるサイトのデータベースを設計していました。私は、true または false の 2 つの状態のみを格納するために boolean データタイプを使用する必要があります。私はMySQLを使用しています。

phpMyAdmin を使用してデータベースを設計しているとき、私は BOOLEAN データ型と TINYINT データ型の両方を持っていることを発見しました。

私はさまざまな記事を調べ、あるものはTINYINTはBOOLEANと同じで、違いはないと言いました。あるものは、MySQL では BOOLEAN は TINYINT に変換されると言っています。

私の質問は、もし両方とも同じであるなら、なぜ 2 つが存在するのでしょうか。1 つしかないはずです。

以下は、私が読んだ記事の参考文献です。

http://www.careerride.com/MySQL-BOOL-TINYINT-BIT.aspx

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

どのように解決するのですか?

MySQL には内部ブーリアン データ型がありません。最小の整数データ型である TINYINT を使用します。

BOOLEAN と BOOL は TINYINT(1) と同義語であるため、同等となります。

このテーブルを作成してみてください。

CREATE TABLE table1 (
  column1 BOOLEAN DEFAULT NULL
);

次に、SHOW CREATE TABLEを実行すると、次のような出力が得られます。

CREATE TABLE `table1` (
  `column1` tinyint(1) DEFAULT NULL
)