のような値を格納するためにどのデータ型を使用できますか1,2,3,4,5
。文字列ではなく整数のままにしておきたいです。を使用できることはわかっていますvarchar() or enum() or set()
が、それらは文字列です。MySQL バージョンを使用しています5.5.25
。格納される値も固定されていません。1
または_1,2,3
質問する
2524 次
3 に答える
2
適切なデータ型はテーブルです。行ごとに 1 つの値を格納できます。
通常、値のグループは何らかのエンティティに割り当てられるため、これは関連テーブルになります。何かのようなもの:
create table EntityNumbers (
EntityNumberId int auto_increment primary key,
EntityId int references Entities(EntityId),
Number int
);
次に、リストを返したい場合は、次を使用しますgroup_concat()
。
select EntityId, group_concat(Number)
from EntityNumbers
group by EntityId;
于 2013-08-31T12:38:33.580 に答える
1
MySql にはそのようなデータ型はありません。1 つのフィールドに複数の値を格納するために使用できる唯一のデータ型は、文字列のみを格納するSetデータ型です。
リレーショナル データベースでは、この問題の通常の解決策は、元のテーブルの各行に対して複数の行を持つ、元のテーブルへの外部キーを持つテーブルを追加することです。
だから代わりに
id | name | values
1 | foo | 7,8,9
あなたが持っているだろう
id | name
1 | foo
と
id | foreign_key | value
1 | 1 | 7
2 | 1 | 8
3 | 1 | 9
を使用してそれらを選択します
SELECT value from original_table join additional_table ON (id == foreign_key)
WHERE original_table.id == 1
その結果、3 つの結果行が生成されます。
于 2013-08-31T12:38:42.283 に答える
0
tinyint() stores 1 byte
smallint() stores 2 bytes
mediumint() stores 3 bytes
int() stores 4 bytes
于 2013-08-31T12:39:28.960 に答える