我有一个包含60个布尔(TINYINT(1))可搜索列的表。用户可以使用给定列的任何子集作为搜索条件。基于此我无法为我的需求创建一个好的索引。我想知道我是否可以创建另一个类型为BIT(60)的列(concat_col),它将是可搜索列的串联,即
Table_A:
id |col1|col2|...|col60|concat_col
9999 | 1 | 0 |...| 1 |10...1
然后我可以为它创建一个好的索引(在concat_col上)但是有一个问题 - 如何为它创建查询?
请参阅以伪代码编写的此示例:
标准版(这显然可以正常工作):
SQL = SELECT * FROM Table_A WHERE col1=1 AND col60=1
我的版本(' *'是通配符,因为它不是' 1'不是' 0'):
SQL = SELECT * FROM Table_a WHERE concat_col = '1*...1'
是否有可能有效地解决这个问题?非常感谢你的帮助!
答案 0 :(得分:0)
尝试:
SQL = SELECT * FROM Table_a WHERE concat_col REGEXP '^1[0-9a-zA-Z]{58}1$'