Alternative pour OU la condition après la clause where dans une instruction select Cassandra
Est-il possible de Cassandra pour utiliser plusieurs conditions de l'union de ed ensemble après la clause where d'une instruction select, comme dans les SGBDR. Voici mon code :
SELECT * from TABLE_NAME WHERE COND1= 'something' OR COND2 = 'something';
SÉLECTIONNEZ [N] [INVERSÉ] À PARTIR DE [AIDE ]
[OÙ ] [LIMIT N];
..
La clause where fournit pour filtrer les lignes qui apparaissent dans les résultats. La clause peut filtrer sur le nom de la clé, ou la plage de touches, et dans le cas de colonnes indexées, sur les valeurs de la colonne. Les filtres sont spécifiées à l'aide de la CLÉ, mot-clé, un opérateur relationnel (un =, >, >=, < et <=), et une valeur à long terme. Lorsque les termes apparaissent sur les deux côtés d'un opérateur relationnel, il est supposé que le filtre s'applique à une colonne indexée. Avec un index de colonne de filtres, le terme à gauche de l'opérateur est le nom, le terme de droite est la valeur du filtre.
En supposant COND est le nom de votre table de la clé primaire, vous pouvez le faire:
SELECT * from TABLE_NAME WHERE COND1 in ('something', 'something');
Donc, il n'est pas pleinement général OR opération, mais il semble que cela peut être l'équivalent de ce que vous étiez en train de faire.
Rappeler, comme vous l'utiliser CQL, que la requête de la planification n'est pas destiné à être un de ses points forts. Cassandra code fait généralement l'hypothèse que vous avez d'énormes quantités de données, donc il va essayer d'éviter de faire les requêtes qui pourrait être coûteux. Dans le RMDBS monde, est la structure de vos données selon intrinsèques des relations (3ème forme normale, etc), alors que dans Cassandra, la structure de vos données selon les requêtes dont vous pensez avoir besoin. Dénormalisation de l'est (pardonnez le calembour) de la norme.
Point est, CQL est destiné à être une plus familier, amical syntaxe pour la fabrication de Cassandra requêtes que les plus âgés de l'Épargne de l'interface RPC. Il n'est pas destinée à être complètement expressif et flexible de la façon dont SQL est.
les paul, j'ai essayé la déclaration ci-dessus mais sa montre l'erreur en cql shell déclarant incompatibles entrée 'DANS' attend set null. Rappelez-vous l'exemple COND1 est index secondaire. La droite. Cette construction ne fonctionne que pour une clé primaire.
Réponse est Simple: il n'y a pas d'équivalent de OU
http://www.datastax.com/docs/0.8/dml/using_cql
Ici est la référence de commande pour v0.8:
http://www.datastax.com/docs/0.8/references/cql#cql-reference
..
OriginalL'auteur sdolgy
En supposant COND est le nom de votre table de la clé primaire, vous pouvez le faire:
Donc, il n'est pas pleinement général
OR
opération, mais il semble que cela peut être l'équivalent de ce que vous étiez en train de faire.Rappeler, comme vous l'utiliser CQL, que la requête de la planification n'est pas destiné à être un de ses points forts. Cassandra code fait généralement l'hypothèse que vous avez d'énormes quantités de données, donc il va essayer d'éviter de faire les requêtes qui pourrait être coûteux. Dans le RMDBS monde, est la structure de vos données selon intrinsèques des relations (3ème forme normale, etc), alors que dans Cassandra, la structure de vos données selon les requêtes dont vous pensez avoir besoin. Dénormalisation de l'est (pardonnez le calembour) de la norme.
Point est, CQL est destiné à être une plus familier, amical syntaxe pour la fabrication de Cassandra requêtes que les plus âgés de l'Épargne de l'interface RPC. Il n'est pas destinée à être complètement expressif et flexible de la façon dont SQL est.
La droite. Cette construction ne fonctionne que pour une clé primaire.
OriginalL'auteur the paul
Voici la syntaxe de CQL v3:
vous ne pouvez pas l'utilisation OU de l'exploitation comme SQL.
OriginalL'auteur Hossein