formにてcheckboxの値を一つのカラムにいれて管理する機会があったのですが、これ入力更新出会っても検索であっても処理がなかなか厄介です。特に検索の時ですね・・・
要するに値の候補が1,2,3,4だとしてデータとして値1,3が入っているとします。
そして検索画面では1,2がチェックされ含まれている値は?となった時、
とりあえず現状の対処法としては、
- 文字列にしてカンマ区切りで保存(厳密にやりたい場合はSET型でもいいかも)
- でもってFIND_IN_SETで値を1つ1つ検索
とやっていました。ただこの方法だとindexが効きませんので検索のスピードを上げたい時には向きません。
そんな時ですが、2進法の考え方を利用して、値を保存してあげると検索効率が上がります。(実際の実装については要調査)