SELECT*FROM test WHERE a=1AND b>2;
SELECT*FROM test WHERE a=1AND b=1AND c>2;
SELECT*FROM test WHERE a=1AND b=1AND c=1AND d>2;
SELECT*FROM test WHERE a=1AND b=1AND c>2AND c<2;
以上都是可行的。
1
2
3
4
5
6
SELECT*FROM test WHERE a>1;
//不行,第一主键只能用=号
SELECT*FROM test WHERE a=1AND c>2;
//不行 中间不能有跳跃
SELECT*FROM test WHERE a=1AND b>2AND b>=2;
//不行,同一个主键不能同时用>>== 或者<<==
2、不含第一主键的前缀表达式
这类表达式,需要加上ALLOW FILTERING来查询,这样的查询效率肯定是低一些
举例:
1
2
3
4
SELECT*FROM test WHERE b>2 ALLOW FILTERING;
SELECT*FROM test WHERE b=1AND c>2 ALLOW FILTERING;
SELECT*FROM test WHERE b=1AND c=1AND d>2 ALLOW FILTERING;
SELECT*FROM test WHERE b=1AND c>2AND c<2 ALLOW FILTERING;
3、包含索引列查询
举例:
1
2
3
4
5
6
7
8
9
SELECT*FROM test WHERE e=1;
//只含索引
SELECT*FROM test WHERE a=1AND b=1AND c>1AND e=1;
//包含索引列和前缀表达式的组合
SELECT*FROM test WHERE b=1AND c>1AND e=1;
//包含索引列和不含第一主键的前缀表达式的组合 不需要ALLOW FILTERING
SELECT*FROM test WHERE c>1AND e=1 ALLOW FILTERING;
//除此之外和任意其它表达式的组合,都可以进行查询,
//前提是要加ALLOW FILTERING;