SELECT * FROM sample WHERE id = '2' OR uid = '1';
我使用cqlsh客户在cqlsh错误OR操作卡桑德拉cqlsh
Bad Request: line 1:36 missing EOF at 'OR'
是否有可能在卡桑德拉or
操作?
SELECT * FROM sample WHERE id = '2' OR uid = '1';
我使用cqlsh客户在cqlsh错误OR操作卡桑德拉cqlsh
Bad Request: line 1:36 missing EOF at 'OR'
是否有可能在卡桑德拉or
操作?
虽然doanduyhai是正确的原则,有“IN”操作符,如果你需要在限制同一列:
cqlsh:demodb> SELECT * FROM sample WHERE id IN ('2','1');
可用的操作类型在很大程度上取决于数据模型。我强烈推荐the data model section in datastax' documentation。
小心,WHERE子句不适用于同一列:* WHERE id ='2'或uid ='1'; *。第一个条件适用于** id **列,第二个条件适用于** uid **列。 IN子句在这里不起作用 – doanduyhai
我强调了建议的用例。您的查询似乎有点奇怪,并且表明需要对数据模型进行更多的工作。如果您需要查询两个完全不同的索引,则可能需要创建两个不同组织的表/列族,以获得最佳读取性能。 – omnibear
@omnibear谢谢你的答案..但在你的情况下,你是比较值与单列名称作为ID。我需要将两列作为ID和UID进行比较。 doanduyhai是对的,但我担心它与两个合成查询合并时效率如何。如果我合并两个结果查询,我认为它可能会变得复杂,因为我有很多数据在表中 –
那么,如何在CQL中实现OR操作(如SQL) –
您应该触发2个查询,然后在客户端合并结果(集合)。现在没有其他办法了。 – doanduyhai
可以为我提供任何示例,因为我是cassandra的新手 –