2011-12-05 8 views
2

、ビットフィールドからインデックスで1ビットを取得しますか? iは位置3のビット値をしたい:MySQLではビットフィールドから1ビット(またはブール値)を取得する方法はありmysqlの

私が思いついた唯一の解決策は、以下を使用することです。

SELECT bit_count(bin(column) & b'100') AS bitValue FROM table; 

このクエリの出力は、1またはゼロです。しかしそれはとても素敵に見えません。 ビットフィールドの特定の位置でビット値を取得するより良い方法はありますか? ビット値を読み取ることは、私のWebアプリケーションで大きく行われるでしょう。上記で使用した値を取得する方法は、パフォーマンスの問題になると思いますか?読み取り用

SELECT column(3) FROM table; 

ありがとう:私はのようなものを探しています

.. bit_countとBIN()と「と」演算子の両方を意味します!

Mattias。

答えて

2

あなたが読んで、パフォーマンスとあなたが固定されていることに興味がある少し心配している場合は、ビットを抽出し、boolean型の列に挿入してみてください。抽出しようとしているビットが動的であれば、あなたのソリューションは最適だと思います。

関連する問題