在Cassandra中如何通过多个过滤器选择行?

时间:2014-10-28 15:15:11

标签: cassandra-2.0 cassandra-cli

我有一张如下表: CREATE TABLE test(一个int; b int; c int; d int; PRIMARY KEY());

我想选择0< a< 10和0< b< 10,我应该如何设置PRIMARY KEY以及如何运行CQL查询?

谢谢!

1 个答案:

答案 0 :(得分:-1)

不允许在分区键上使用范围运算符(<>),除非您使用ByteOrderedPartitioner,它有几个与性能相关的缺点。

否则,使用默认的Murmur3Partitioner,您有两个选择。第一个解决方案:

create table test (
    a int,
    b int,
    c int,
    d int,
    primary key ((a,b))
);

然后在1..10中的X

select * from test where a = X and b in (1,2,3,4,5,6,7,8,9,10)

第二个解决方案:

create table test (
    a int,
    b int,
    c int,
    d int,
    primary key (a,b)
);

然后

select * from test where a in (1,2,3,4,5,6,7,8,9,10) and b >=1 and b <= 10 ;