【发布时间】:2020-09-15 00:02:39
【问题描述】:
我知道 Cassandra 在 where 子句中不支持 OR,但我需要以下查询的等效项:
select * from table where column1 = '123' or column2 = '123';
由于 Cassandra 不支持 OR,我可以使用如下的批处理查询并将结果组合到程序中吗?它是否有效?
[ select * from table where column1 = '123' , select * from table where column2 = '123']
如果没有,有没有办法实现上述简单逻辑。
就我而言,column1 和column2 都是主键。即复合分区键。
我可以将 column1 和 column2 组合为一个列表 [column1, column2] 并像这样查询:
select * from table where list contains '123';
并在列表上创建二级索引
【问题讨论】:
-
Cassandra 中的
BATCH并没有按照您的想法进行操作。它原子地应用操作。原子地应用SELECTs 没有任何好处。
标签: cassandra