状況
PHP/MySQL アプリケーション内の特定のステータス フィールドを変換して、いつでも複数のフィールドを処理したいと考えています。例として、現在の ENUM フィールドを以下に示します。
STATUS_ACTIVE
STATUS_FROZEN
STATUS_PENDING
STATUS_FLAGGED
STATUS_DELETED
現在、一度に 1 つのみサポートされます。ただし、セットをバイナリに変換すると、文字列のセットになります。
1 STATUS_ACTIVE
10 STATUS_FROZEN
100 STATUS_PENDING
1000 STATUS_FLAGGED
10000 STATUS_DELETED
さて、PHPの賢明なフィルタリングに関しては、問題はありません。ただし、これにより、大きな (そして不必要な) オーバーヘッドが発生します。エントリが最終的に次のようになる可能性が非常に高い
10010
01110
etc.
質問
私はいくつか掘り下げましたが、私が見つけた最良の情報は、実際には(皮肉なことに)ここでスタックオーバーフローにありました。誰かがそこで使用されている実際の構文を説明するか、正しい MySQL マニュアル ページを教えてください。
これらの状況について仮説的にどのように対処するかは、あまり明確ではありません。
Changing only the third bit
Searching for 1 on only the fourth bit
Updating two binary flags at the same time
読んでくれてありがとう。
編集:ほとんどの構文を理解しました。私の質問: 全体を再定義することなく、一度に複数のビットを変更することは可能ですか?
I.e
100 -> 1011
1 -> 101