0b0101000
マスクを適用した後に肯定的な結果を与える行を見つけるなど、データベースにデータをバイナリシーケンスで保存する良い方法を見つけました。
例:SELECT (0b0101010 & (1<<3 | 1<<5))>0;
他のビットがオンかオフかに関係なく、3番目または5番目のビットがオンの行を取得できます。
問題は、これを ActiveRecord で実行したい場合です。この移行add_column :table, :column, :binary, :limit => 8.bytes
により、実際にはorTINYBLOB
ではなく列が作成され、バイナリ値と見なされないため、その値にマスクを適用できません。BINARY
VARBINARY
生の SQL ステートメントを実行し、この部分の生の SQL セグメントを使用してテーブルにクエリを実行することにより、移行で適切な列形式を作成できることはわかっていますが、「Rails の方法」とは思えません。
アイデアをありがとう。