CQL syntax error: "mismatched input 'and' expecting ')' "
CQL syntax error: "mismatched input 'and' expecting ')' "
我正在执行以下查询:
SELECT * FROM test
WHERE (
Column11 in ('Value1','Value2','Vlaue3')
AND Column12 in ('Value11','Value22','Vlaue32')
AND Column13 = 'Value99'
);
这是给出以下错误:
mismatched input 'and' expecting ')' (...,'Value3') [and]...)
但是当我在没有外部大括号的情况下执行上述查询时,它工作正常。
SELECT * FROM test
WHERE Column11 in ('Value1','Value2','Vlaue3')
AND Column12 in ('Value11','Value22','Vlaue32')
AND Column13 = 'Value99' ;
有什么方法可以执行第一个查询吗?因为我要添加多个子句,OR分隔,准备一个大查询。
This one is just parentheses enclosing conditions forming the where clause.
子查询与否,CQL 解析器不允许额外的括号。
I want to add multiple clauses, OR separated, and prepare a big query.
由于 Cassandra 在数据分布和读取路径方面的底层工程选择,OR
不是有效的 CQL 关键字。
Cassandra 要求您根据预期的查询模式对表进行建模。当您 运行 查询时,目标应该是确保它可以由集群中的单个节点提供服务。 OR
基于的逻辑往往更加开放,而不是专注于精确的键值。
tl;dr;
CQL != SQL。在我看来,这更像是 Postgres 或 MariaDB 的用例。
我正在执行以下查询:
SELECT * FROM test
WHERE (
Column11 in ('Value1','Value2','Vlaue3')
AND Column12 in ('Value11','Value22','Vlaue32')
AND Column13 = 'Value99'
);
这是给出以下错误:
mismatched input 'and' expecting ')' (...,'Value3') [and]...)
但是当我在没有外部大括号的情况下执行上述查询时,它工作正常。
SELECT * FROM test
WHERE Column11 in ('Value1','Value2','Vlaue3')
AND Column12 in ('Value11','Value22','Vlaue32')
AND Column13 = 'Value99' ;
有什么方法可以执行第一个查询吗?因为我要添加多个子句,OR分隔,准备一个大查询。
This one is just parentheses enclosing conditions forming the where clause.
子查询与否,CQL 解析器不允许额外的括号。
I want to add multiple clauses, OR separated, and prepare a big query.
由于 Cassandra 在数据分布和读取路径方面的底层工程选择,OR
不是有效的 CQL 关键字。
Cassandra 要求您根据预期的查询模式对表进行建模。当您 运行 查询时,目标应该是确保它可以由集群中的单个节点提供服务。 OR
基于的逻辑往往更加开放,而不是专注于精确的键值。
tl;dr;
CQL != SQL。在我看来,这更像是 Postgres 或 MariaDB 的用例。