如何在CQL/cassandra中使用多个大于/小于条件执行查询?
我正在写一个地图应用程序。 一旦我得到地图的边界,我就必须查询数据库中的点。 结构: CREATE TABLE map.items ( id timeuuid, type int, lat double, lng double, rank int ) 创建表map.items( id timeuuid, int型, 拉特双倍, 液化天然气双倍, 秩int ) 我想这样提问: select * from map.items where type=1 and (lat > 30 and lat < 35) and (lng > 100 and lng < 110) order by rank desc limit 10; 从map.items中选择* 其中type=1 和(lat>30和lat<35) 和(lng>100和lng<110) 按等级顺序描述 限制10; 新手卡桑德拉,请帮助或提供参考。如何在CQL/cassandra中使用多个大于/小于条件执行查询?,cassandra,cql,cql3,Cassandra,Cql,Cql3,我正在写一个地图应用程序。 一旦我得到地图的边界,我就必须查询数据库中的点。 结构: CREATE TABLE map.items ( id timeuuid, type int, lat double, lng double, rank int ) 创建表map.items( id timeuuid, int型, 拉特双倍, 液化天然气双倍, 秩int ) 我想这样提问: select * from map.items where type=1 an
谢谢大家! CQL只能在一个集群键上应用范围查询,因此您无法在CQL中直接执行该操作 两种可能的方法:
这两种方法都不是很好的解决方案,因为DB中的0.1度可能意味着1K点。我认为阅读和分类它们是昂贵的。方法2可能导致地图边界以外的点。也许我应该向mariaDB询问这一部分,但随着排名的不断更新,这也会很痛苦。但无论如何,谢谢你告诉我只允许一个射程条件。