在Cassandra中,可以像在任何RDBMS中一样,在select语句中的where子句之后使用多个联合在一起的条件吗?下面是我的代码:
SELECT * from TABLE_NAME WHERE COND1= 'something' OR COND2 = 'something';
发布于 2012-04-27 03:55:07
假设COND是表的主键的名称,您可以这样做:
SELECT * from TABLE_NAME WHERE COND1 in ('something', 'something');
因此,没有完全通用的OR
操作,但看起来这可能等同于您正在尝试做的事情。
请记住,在使用CQL时,查询规划并不是它的强项之一。Cassandra代码通常会假设您有大量的数据,因此它会尽量避免执行任何可能会导致代价高昂的查询。在RMDBS世界中,您可以根据内在关系(第三范式等)来组织数据,而在Cassandra中,您可以根据预期需要的查询来组织数据。非正规化(请原谅双关语)是常态。
重点是,CQL旨在成为一种比旧的Thrift RPC接口更熟悉、更友好的Cassandra查询语法。它并不打算像SQL那样完全具有表现力和灵活性。
发布于 2018-06-07 04:45:46
下面是CQL v3的语法:
SELECT * | select_expression | DISTINCT partition
FROM [keyspace_name.] table_name
[WHERE partition_value
[AND clustering_filters
[AND static_filters]]]
[ORDER BY PK_column_name ASC|DESC]
[LIMIT N]
[ALLOW FILTERING]
那么你就不能像SQL一样使用OR操作。
https://stackoverflow.com/questions/10139390
复制相似问题