私はMySQLでbool型は、(1)、したがって、私は私の質問は以下の通りですtinyint型BOOLとtinyint(1)...符号なし?
を使用する必要がありますtinyint型の別名であることを読んだ: 私はそれが符号なし宣言する必要がありますか、私が意味する、それがあります必要なの?
purchased tinyint(1) unsigned not null DEFAULT 0,
or
purchased tinyint(1) not null DEFAULT 0,
私はMySQLでbool型は、(1)、したがって、私は私の質問は以下の通りですtinyint型BOOLとtinyint(1)...符号なし?
を使用する必要がありますtinyint型の別名であることを読んだ: 私はそれが符号なし宣言する必要がありますか、私が意味する、それがあります必要なの?
purchased tinyint(1) unsigned not null DEFAULT 0,
or
purchased tinyint(1) not null DEFAULT 0,
これは必須ではありません。それを署名したままにします。実際は、とにかく重要ではありません。0と1は、その符号性に関係なく、TINYINT
の有効な値の範囲内にあります。
真剣に言えば、それはBOOL
と宣言するだけで、真偽値であることが明確になります。
私はmysqlでboolを使うことはできませんでしたが、boolはmysqlでサポートされていませんでした....遅くまで学ぶことはありません... – Marco
'BOOL'は' TINYINT(1) 'の同義語です。 – MichaelRushton
一部のバージョンではBOOLをサポートしていない可能性があります。別のSQLでクエリを使用する必要がある場合は、変換が簡単ですのでtinyintを使用するとよいでしょう。 – JDuarteDJ
特に、ブール値を格納するために使用している場合は、それを符号なしと宣言する必要はありません。
BOOLの使用に問題がありますか? –
_ "したがって私はtinyintを使うべきです" _ - それはなぜ続くのですか? BOOLはあなたの意図をもっと表現しています。 'TINYINT(1)'は "0から9までの任意のもの"を意味するかもしれません。 'BOOL'は具体的には「0または1」を意味します(あなたの意図を誤って伝えるかもしれないと思いますが):-))。 –