2014-06-18 33 views
1

CF模式:如何在複合行鍵的CQL3中做multiget?

CREATE TABLE mytable (
upperId int, 
lowerId int, 
hour timestamp, 
counter text, 
succ int, 
fail int, 
PRIMARY KEY ((upperId, lowerId), hour, counter)); 

每個記錄是由複合ID upperId鍵入:lowerid,我怎麼能與CQL3 Multiget的?

這是無效的:

select * from mytable where (upperid, lowerid) in ((10000, 1), (10000, 2), (20000, 1)); 

我不能做到這一點無論:

select * from mytable where (upperid = 10000 and lowerid in (1, 2)) or (upperid = 20000 and lowerid = 1); 

我得到錯誤:在缺少EOF ')'。

請幫忙指點一下在CQL3中爲複合行鍵做multiget的有效方法。

感謝, 威廉

回答

1

CQL還不支持邏輯 「或」 select語句。

相反,在你的應用程序你可以從合併這兩個查詢結果集:

select * from mytable where upperid = 10000 and lowerid in (1, 2); 
select * from mytable where upperid = 20000 and lowerid = 1; 

參考:

+0

這出乎意料,或者是相當自然和標準的關係。阻止支持它的任何好理由? – william