2014-10-10 15 views
1

Я пытаюсь изучить кассандру. Я использую windows community edition (2.0).Cassandra - CQL OR Operator

Моя схема таблицы является:

CREATE TABLE test.TestTable2 (
PK1 int, 
PK2 int, 
CK3 int, 
CK4 int, 
Dump text, 
PRIMARY KEY ((PK1,PK2,CK3),CK4) 
); 

Я хочу, чтобы запросить значение дампа для (PK1=1 and Pk2 =2 and Ck3 =5 and CK4 in (4,5)) or (PK1=2 and Pk2 =2 and Ck3 =5 and CK4 in (4,5)). Я не могу использовать или условие, может кто-то подскажет, как я могу это сделать в CQL

ответ

1

Там нет поддержки для OR оператора: что вы хотели бы сделать, это хит 2 разделов, так что должно быть сделано два разных запроса.

Query 1: (PK1=1 and Pk2 =2 and Ck3 =5 and CK4 in (4,5)) 
Query 2: (PK1=2 and Pk2 =2 and Ck3 =5 and CK4 in (4,5)) 

Вы можете реализовать «короткое замыкание» самостоятельно: выполнить в первом запросе можно было ожидать, чтобы иметь больше возможностей для получения результата - Если вы получили результат остановить процесс, если не выполнить второй запрос.