1

データベースのフィールドには、0、1、2 の 3 つの値しか含まれません。どのデータ型を使用すればよいのでしょうか。私はこれを見つけましたが、tinyint(1) を使用する必要があるようですが、範囲は -127 から 126 です。

4

3 に答える 3

5

tinyint(1) unsignedおそらくこれにぴったりです

于 2012-05-30T16:30:51.523 に答える
0

推奨されませんが...私は当初、スペースが本当に大きな問題であるかどうかを考えていましたが、これは調査する価値があるかもしれません。

0、1、2ではなくNULL、0、1で動作できる場合は、ブール値/ビットも機能する可能性があります。

ただし、booleanとtinyintは実質的に同じように見えます。そして、tinyintはmysqlのすべてのデータ型の中で最小のフットプリントを持っています。リンクを参照してください。

于 2012-06-08T04:01:36.600 に答える
0

入力した数値が 0、1、または 2 であることを確認したい場合は、テーブルに CHECK 制約を追加するのが最善です。

ALTER TABLE
    tableName
ADD CONSTRAINT 
    checkConstain
CHECK (columnName BETWEEN 0 and 2)

これがSQL Fiddelで動作する例を見ることができます

于 2012-06-30T18:28:45.113 に答える