我正在使用Cassandra 3.0,我创建了一个表如下:
CREATE TABLE site (
site_id bigint,
end_date timestamp,
start_date timestamp,
promotion_id uuid,
PRIMARY KEY (site_id, end_date,start_date, promotion_id)
) WITH CLUSTERING ORDER BY (end_date DESC,start_date DESC, promotion_id ASC);
我在此表中插入一条记录
insert into site (site_id, start_date,end_date,promotion_id) values (10000,'2017-05-11T16:17:48','2017-05-21T16:17:48',8999f91c-a787-4604-9479-f8ead4955f6c);
请问为什么以下cql会返回一条记录?我期待它什么都不返回:
select * from site
where site_id = 10000 and ( end_date, start_date ) <= ( '2117-05-12', '2017-04-12' );
答案 0 :(得分:0)
也可以将“聚类”组合在一起 使用元组表示法的关系。例如:
SELECT * FROM posts WHERE userid = 'john doe' AND (blog_title, posted_at) > ('John''s Blog', '2012-01-01')
将请求在“John的博客”之后排序的所有行 群集顺序中
blog_tile
的{{1}}和“2012-01-01”。 特别是,具有posted_at
的行将是 只要他们posted_at <= '2012-01-01'
就会返回 不是这样的:blog_title > 'John''s Blog'
这是来自cassandra文档。
因此,在您的情况下,它将返回具有SELECT * FROM posts
WHERE userid = 'john doe'
AND blog_title > 'John''s Blog'
AND posted_at > '2012-01-01'