是否可以在select语句Cassandra中的where子句之后传递任何其他列

abh*_*bhi 5 select cql primary-key where cassandra

我一直在尝试使用此命令从Cassandra数据库中检索数据:

 select A_NO from Activity where CALL_TYPE IN ('MOC');//here CALL_TYPE is not the row id
Run Code Online (Sandbox Code Playgroud)

但它显示:

Expected key 'KEY' to be present in where clause for 'Activity'
Run Code Online (Sandbox Code Playgroud)

在cassandra中是否有可能借助非主键过滤数据?

Pau*_*mke 6

您不能直接在香草列系列上执行此操作.Cassandra默认情况下只允许您查询键或键范围.您可以通过在列上创建二级索引来完成此操作

您可以像这样运行CQL查询来创建两个索引:

cqlsh> CREATE INDEX state_key ON users (state);
cqlsh> CREATE INDEX birth_year_key ON users (birth_year);
Run Code Online (Sandbox Code Playgroud)

然后像这样查询:

cqlsh> SELECT * FROM users
 ... WHERE gender='f' AND
 ...  state='TX' AND
...  birth_year='1968';
Run Code Online (Sandbox Code Playgroud)

以下是二级索引的更多内容.

以下是有关使用CQL的文档.