在Cassandra中选择列为空的行

时间:2015-09-16 09:55:44

标签: cassandra

我在Cassandra中有下表(CQL规范3.3.0): -

a,b,c,d

其中Users表的列名为null。现在,我想为列b为select from Users where b = null; 的行选择所有列。我做了以下查询: -

"message="Invalid null value in condition"

但是失败了,错误= {{1}}

  1. 答案在这里: - null doesn't exists澄清了语义 null仍然不清楚如何选择哪些列 是不是连续出现?
  2. 此处Nulls in Cassandra一个答案声称null最新cassandra支持,但看起来它不适用于地图。
  3. 有什么办法可以解决吗?或者我应该从所有行中选择所有列并以编程方式手动检查null,这对于大型数据库来说当然是非常低效的。

1 个答案:

答案 0 :(得分:3)

Cassandra不支持基于null的查询,即使对于二级索引也是如此。

您可以在表格中添加另一个字段,例如"未初始化"作为第一次插入行时设置为true的布尔值,您将在"未初始化的"上创建二级索引。字段。

当您将地图设置为某个内容时,您可以设置"未初始化"为假。然后,要查找地图为空的行,您可以查询"未初始化的行"是的。