mysqlのビットフィールドから1ビット(またはブール)を取得する方法はありますか?
私が思いついた唯一の解決策は、以下を使用することです: 位置3のビット値が必要です。
SELECT bit_count(bin(column) & b"100") AS bitValue FROM table;
このクエリからの出力は、1つまたはゼロ。しかし、見た目はあまり良くありません。 ビットフィールドの特定の位置でビット値を取得するより良い方法はありますか? ビット値の読み取りは私のWebアプリケーションでかなり行われますが、上記で使用した値を取得する方法はパフォーマンスの問題になると思いますか?つまり、bit_countとBIN()および「and」演算子の両方を意味します。
私は次のようなものを探しています:
SELECT column(3) FROM table;
読んでくれてありがとう!
マティアス
回答:
回答№1は2読み取りパフォーマンスと興味のあるビットは修正されています。ビットを抽出してブール列に挿入してみてください。抽出しようとしているビットが動的な場合、あなたのソリューションは最適だと思います。