2016-08-04 46 views
0

Ich habe eine Tabelle 'test' erstellt und einige Werte mit den folgenden Befehlen mit CQL eingefügt.Cassandra wählen Abfrage mit IN-Befehl im Kartenfeld

create table testt(val map<text,text>, id text primary key); insert into testt (val,id) values ({'key':'1'},'1');

Wenn ich unter Abfrage Retrieve funktioniert es

select * from testt where val['key']='1' allow filtering;

ich mehrere Werte abrufen müssen, die alle den Wert in val enthält [ key ']. Verwende Fehler unter Befehl.

select * from testt where val['key'] IN('1') allow filtering;

SyntaxException: <ErrorMessage code=2000 [Syntax error in CQL query] message="line 1:37 no viable alternative at input 'IN' (... testt where val['key'] [IN]...)">

Gibt es eine andere Art und Weise oder Methoden zur Verfügung, die gewünschte Ausgabe zu erhalten?

+0

Hallo. Was ist das Bedürfnis? Die Suche nach Sammlungen ist sehr komplex. Sie können wahrscheinlich ein anderes Modell verwenden, um den gewünschten Wert leichter zu suchen. Verwenden Sie zum Beispiel eine Suchtabelle. –

Antwort

0

Die einzige Möglichkeit, Werte für mehrere Schlüssel in Cassandra abzurufen, besteht darin, mehrere Abfragen auszuführen. Möglicherweise können Sie Ihren Primärschlüssel anpassen, um die gewünschten Werte mit einer einzigen Abfrage abzurufen.