我下表“keyspaceB.memobox”在卡桑德拉,我不知道该怎么办ORDER BY
DROP TABLE IF EXISTS keyspaceB.memobox;
CREATE TABLE IF NOT EXISTS keyspaceB.memobox (
pkey1 text,
pkey2 text,
id timeuuid,
name text,
memo text,
date timestamp,
PRIMARY KEY ((pkey1, pkey2),id,name)
) WITH CLUSTERING ORDER BY (id DESC,name DESC);
准备,我注册了以下数据。
INSERT INTO memobox (pkey1,pkey2,id,name,memo,date) VALUES ('a','b',now(),'tanaka','greet message1','2016-12-13');
INSERT INTO memobox (pkey1,pkey2,id,name,memo,date) VALUES ('a','b',now(),'yamamoto','greet message2','2016-12-13');
下面将接替
SELECT * FROM memobox where pkey1='a' and pkey2='b' ORDER BY id;
然而,下面会失败。我想问你的教授什么是错的。
SELECT * FROM memobox where pkey1='a' and pkey2='b' ORDER BY name;
■错误
cqlsh:keyspaceb> SELECT * FROM memobox where pkey1='a' and pkey2='b' ORDER BY name;
InvalidRequest: code=2200 [Invalid query] message="Order by currently only support the ordering of columns following their declared order in the PRIMARY KEY"
cqlsh:keyspaceb>
感谢您的详细解答!我很感激。这非常有帮助。 –