2012-04-13 12 views

答えて

11

単純な答え:

http://www.datastax.com/docs/0.8/references/cql#cql-reference

OR

ここ

http://www.datastax.com/docs/0.8/dml/using_cql

はv0.8のコマンドリファレンスであるのは同等ではありません

SELECT [FIRST N] [R EVERSED]から[USING] [WHERE] [LIMIT N];

..

句は、結果に表示される行をフィルタリングするため提供ザ。この句は、キー名またはキーの範囲、およびインデックス付きの列の場合は列の値をフィルタリングできます。キー・フィルターは、KEYキーワード、関係演算子(=、>、> =、<、および< =の1つ)とターム値を使用して指定します。リレーショナル演算子の両側に項が現れると、フィルターは索引付き列に適用されます。列インデックスフィルタでは、演算子の左の項は名前であり、右側の項はフィルタリングする値です。

SELECT * from TABLE_NAME WHERE COND1 in ('something', 'something'); 

だから、何も完全に一般OR操作はありませんが、これはあなたが何であったかと同等であることも同じように見えます:

8

CONDがあなたのテーブルの主キーの名前であると仮定すると、あなたが行うことができますやろうとしている。

CQLを使用するとき、そのクエリプランニングはその強みの1つではありません。カッサンドラのコードでは、通常、膨大な量のデータがあることを前提としているため、高価なものになる可能性のあるクエリは避けようとします。 RMDBSの世界では、内在的な関係(第3の正規形など)に従ってデータを構造化しますが、Cassandraでは必要とするクエリに従ってデータを構造化します。非正規化は、ノルムを(許して)許しています。

ポイントは、CQLは、古いThrift RPCインターフェイスよりもカサンドラクエリを作成するための、より使い慣れた使いやすい構文であることを意図しています。これは、SQLが完全に表現力豊かでフレキシブルであることを意図するものではありません。

+2

私は上記の文を試しましたが、cqlシェルの表示ミスマッチ入力 'IN'がセットヌルを予期しています。この例ではCOND1がセカンダリインデックスです。 – abhi

+0

右。この構造体は主キーに対してのみ機能します。 –