在 Cassandra 中选择列为空的行

2024-04-01

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

Users: <a,b,c,d>, Primary key a Int, B: Map<Int,Date>

其中 Users 表的列名称为a,b,c,d。现在我想选择 b 列所在行的所有列null。我做了以下查询:-

select from Users where b = null;

但这失败并出现错误 ="message="Invalid null value in condition"

  1. 答案在这里:-null 不存在 https://stackoverflow.com/questions/20981075/how-can-i-search-for-records-that-have-a-null-empty-field-using-cql澄清语义 null 但仍然不清楚如何选择其中的列 不是连续出现的吗?
  2. Here Cassandra 中的 Null 值 https://stackoverflow.com/questions/11800309/cql-unable-to-null-check-in-where-clause?rq=1一个答案声称最新的 cassandra 支持 null,但看起来它不适用于地图。

有什么办法可以解决吗?或者我应该从所有行中选择所有列并以编程方式手动检查 null,这对于大型数据库来说当然效率非常低。


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

您可以向表中添加另一个字段,称为“未初始化”之类的布尔值,在首次插入行时将其设置为 true,然后在“未初始化”字段上创建二级索引。

当您将地图设置为某些内容时,您会将“未初始化”设置为 false。然后,要查找映射为空的行,您需要查询“uninitialized”为 true 的行。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Cassandra 中选择列为空的行 的相关文章

随机推荐