8

使用 CF:

CREATE TABLE history (
  domain text,
  iid text,
  timeid timeuuid,
  data text,
  comments text,
  PRIMARY KEY (domain, iid, timeid)
);

我想这样查询它:

select domain, iid, timeid, data, comments from mappings
where domain = 'a' and iid = 'b'  order by timeid desc;

但它失败并出现以下错误(cassandra 1.1.5):

Bad Request: Order by currently only support the ordering of columns following their declared order in the PRIMARY KEY

我做错了吗?解决方法是什么?谢谢

PS 我得到了它与单个 EQ 限制和 ORDER BY 一起使用,但我需要至少 2 个限制和 order by。

4

1 回答 1

9

您可以将“排序依据”列更改为主键中的第二列:

select * from history where domain = 'a' and iid = 'b' order by iid desc;

这有点令人困惑,因为您iid使用相等进行限制,但它有效 - 您将获得按 . 排序的结果timeid

我相信这是因为iidtimeid形成一个复合列,当您按iid降序排序时,它会排序所有复合列组件,包括timeid.

于 2013-10-22T13:02:47.500 回答