RCDMSのようなselectステートメントのwhere節の後に複数の条件を組み合わせて使用することは可能ですか?ここに私のコードは次のとおりです。whereステートメントのwhere文節の代わりにCassandra
SELECT * from TABLE_NAME WHERE COND1= 'something' OR COND2 = 'something';
RCDMSのようなselectステートメントのwhere節の後に複数の条件を組み合わせて使用することは可能ですか?ここに私のコードは次のとおりです。whereステートメントのwhere文節の代わりにCassandra
SELECT * from TABLE_NAME WHERE COND1= 'something' OR COND2 = 'something';
単純な答え:
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
操作はありませんが、これはあなたが何であったかと同等であることも同じように見えます:
CONDがあなたのテーブルの主キーの名前であると仮定すると、あなたが行うことができますやろうとしている。
CQLを使用するとき、そのクエリプランニングはその強みの1つではありません。カッサンドラのコードでは、通常、膨大な量のデータがあることを前提としているため、高価なものになる可能性のあるクエリは避けようとします。 RMDBSの世界では、内在的な関係(第3の正規形など)に従ってデータを構造化しますが、Cassandraでは必要とするクエリに従ってデータを構造化します。非正規化は、ノルムを(許して)許しています。
ポイントは、CQLは、古いThrift RPCインターフェイスよりもカサンドラクエリを作成するための、より使い慣れた使いやすい構文であることを意図しています。これは、SQLが完全に表現力豊かでフレキシブルであることを意図するものではありません。
私は上記の文を試しましたが、cqlシェルの表示ミスマッチ入力 'IN'がセットヌルを予期しています。この例ではCOND1がセカンダリインデックスです。 – abhi
右。この構造体は主キーに対してのみ機能します。 –