我的列族的结构类似于
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;操作
我需要改变结构吗?请帮帮我。在此先感谢。
答案 0 :(得分:0)
cassandra不支持&gt; =因此您必须更改该值,并且必须仅使用&gt;(大于)和&lt;(lessthen)来执行查询。
答案 1 :(得分:0)
在where子句中的某个索引或主键列字段上应至少有一个“等于”运算符,即“mfg_date = xxxxx”