运行Cassandra SAI示例时OR操作触发SyntaxException错误的原因?
报错原因分析
这个SELECT语句报错的核心原因是Cassandra的CQL语法不允许在WHERE子句中直接用OR连接同一列的多个等值条件,哪怕已经为该列创建了SAI索引,这种写法本身就不符合CQL的语法规则。
CQL针对同一列的多值匹配场景,提供的合法语法是使用IN操作符,而非OR。你需要将原语句修改为以下形式:
SELECT * FROM cycling.comments_vs WHERE created_at IN ('2017-03-21 21:11:09.999000+0000', '2017-03-22 01:16:59.001000+0000');
SAI索引完全支持IN操作,修改后的语句可以正常利用索引完成查询,实现你原本想要的匹配多个created_at值的需求。
内容的提问来源于stack exchange,提问作者zheng zheng
相关产品推荐
相关产品推荐

