Cassandra CQL:过滤一系列值之间的行

时间:2014-06-11 06:43:15

标签: cassandra cql

我的列族的结构类似于

CREATE TABLE product (
    id UUID PRIMARY KEY,
    product_name text, 
    product_code text,
    status text,//in stock, out of stock
    mfg_date timestamp,
    exp_date timestamp

);

在status,mfg_date,product_code和exp_date字段上创建了二级索引。

我想选择状态为IS(有库存)的产品列表,制造日期介于时间戳xxxx到xxxx之间。

所以我尝试了以下查询。

SELECT * FROM product where status='IS' and mfg_date>= xxxxxxxxx and mfg_date<= xxxxxxxxxx LIMIT 50 ALLOW FILTERING;

它会抛出错误,如没有索引列出现在by-columns子句中,使用&#34; equals&#34;操作

我需要改变结构吗?请帮帮我。在此先感谢。

2 个答案:

答案 0 :(得分:0)

cassandra不支持&gt; =因此您必须更改该值,并且必须仅使用&gt;(大于)和&lt;(lessthen)来执行查询。

答案 1 :(得分:0)

在where子句中的某个索引或主键列字段上应至少有一个“等于”运算符,即“mfg_date = xxxxx”