MySQLの方ですが、単純な文字列や、数字、日付の他に配列に近いSET型、また5.7以降ではJSONなどを入れることができます。
Contents
SET型
いわゆるチェックボックス系の値を入れるのに良さげです。
結構使うケースは多いような気もしますが、私は初めて知りました。
例えば、選択肢がりんご、かき、みかんしかなくてこれ以外の要素は取らないが、この中から複数値を取る可能性がある場合です。
実際の書き方などはリンクを参考に。
インデックスがきかないなどのデメリットもあるようです。
SETとちかいデータとしてENUMなどもありますが、これはどうやら複数ではなく1つですね。カラムの制約が強い場合に入れるといいかもしれません。
FIND_IN_SET
今度はデータをいれたあと、検索などで使う場合ですね。
上記の例だと好きな食べ物のカラムにりんごとかきが入っている。
でりんごが好きな人を求めたいとき、にSELECT文でFIND_IN_SETを使えば〜のカラムの中にりんごが含まれているレコードというような検索方法が取れます。
知っておくと便利なMySQL関数 “FIND_IN_SET”
これまた使用機会多そうだと思ったのですが、初めて知りましたね・・・・FIND_IN_SETはリンクであるように通常の文字列がカンマ区切りで保存されているときに簡単に対象のデータを探すことができます。
検証してませんがSET型も行けるようです。