gpt4 book ai didi

cassandra - 如果我在列族中有两个簇键,如何在 cassandra 中进行查询

转载 作者:行者123 更新时间:2023-12-03 00:56:45 26 4
gpt4 key购买 nike

我有一个像这样的列族和语法:

CREATE TABLE sr_number_callrecord ( 
id int,
callerph text,
sr_number text,
callid text,
start_time text,
plan_id int,
PRIMARY KEY((sr_number), start_time, callerph)
);

我想做这样的查询:

  a) select * from dummy where sr_number='+919xxxx8383' 
and start_time >='2014-12-02 08:23:18' limit 10;

b) select * from dummy where sr_number='+919xxxxxx83'
and start_time >='2014-12-02 08:23:18'
and callerph='+9120xxxxxxxx0' limit 10;

第一个查询工作正常,但第二个查询给出错误,如

Bad Request: PRIMARY KEY column "callerph" cannot be restricted 
(preceding column "start_time" is either not restricted or by a non-EQ
relation)

如果我在第一个查询中得到结果,在第二个查询中我只需添加一个
获得过滤结果的簇键越多,行数就会越少

最佳答案

就像您无法跳过 PRIMARY KEY 组件一样,您只能在查询的最后组件上使用非等于运算符(这就是第一个查询有效的原因)。

如果您确实需要服务上面列出的两个查询,那么您将需要为每个查询创建单独的查询表。为了服务第二个查询,如果您使用如下所示的主键定义查询表(具有相同的列),则该查询表将起作用:

PRIMARY KEY((sr_number), callerph, start_time)

这样,您仍然可以按顺序指定主键的各个部分,并且您的不等于条件位于最后一个主键组件上。

关于cassandra - 如果我在列族中有两个簇键,如何在 cassandra 中进行查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32093347/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com