【问题标题】:The where condition in select the data from table从表中选择数据的where条件
【发布时间】:2023-07-05 07:36:01
【问题描述】:

我正在尝试从 cassandra 数据库中检索分区键值为奇数的数据。
现在我有主键 p 的表 t。

我试过了

Select * from t where token(p)%2=1;

但我收到了错误消息:

SyntaxException:第 1:44 行在输入“%”处没有可行的替代方案(...from videos_by_tag where token(tag)[%]...)

我能做什么?

【问题讨论】:

  • 你正在使用哪个版本..

标签: cassandra cql cqlsh


【解决方案1】:

Cassandra 不支持那种算术运算,通常期望这种运算在客户端解决,如here 解释的那样

您尝试实现的查询具有非常低的基数(预期只有 2 个值),这会造成很大影响,因为您将有效地检索包含的所有信息的一半。这对long time 来说是一个挑战

没有灵丹妙药可以做到这一点,一种选择是添加一个额外的列来指示它是奇数还是偶数,并将其作为复合主键的一部分,另一种选择是拥有 2 个单独的表,一个用于奇数标记,另一个用于偶数值。

【讨论】: