我知道CQL select语句不支持!=
。而且,我也知道!=
查询效率不高。但即使我准备接受过滤,为什么不允许呢?
例如,我想要这样的事情:Select * from foo where PK='something' and CK1='something' and CK2!='something' allow filtering
我的理由是,PK
和CK1
之后基数会足够低,我不在乎Cassandra是否必须读取所有剩余的行。
问题:除了做应用程序端过滤器之外,有没有办法只使用CQL?
答案 0 :(得分:2)
不,没有别的办法。您必须从应用程序层过滤它。
Cassandra在WHERE子句中支持这些条件运算符:CONTAINS,CONTAINS KEY,IN,=,>,> =,<,或< =,但在某些情况下并非全部。
来源:https://docs.datastax.com/en/cql/3.1/cql/cql_reference/select_r.html