60 個のブール値 (TINYINT(1)) の検索可能な列を持つテーブルがあります。ユーザーは、指定された列の任意のサブセットを検索条件として使用できます。それに基づいて、自分のニーズに合った適切なインデックスを作成できません。検索可能な列を連結する BIT(60) 型の別の列 (concat_col) を作成できるかどうか疑問に思っていました。
Table_A:
id |col1|col2|...|col60|concat_col
9999 | 1 | 0 |...| 1 |10...1
その後、(concat_col で) 適切なインデックスを作成できますが、問題が 1 つあります。クエリを作成するにはどうすればよいですか?
疑似コードで書かれたこの例を見てください:
標準バージョン (これは明らかに問題なく動作します):
SQL = SELECT * FROM Table_A WHERE col1=1 AND col60=1
私のバージョン(「*」は「1」でも「0」でもないためワイルドカードです):
SQL = SELECT * FROM Table_a WHERE concat_col = '1*...1'
この問題を効果的に解決する可能性はありますか? ご助力ありがとうございます!