Couchbase Lite 2.0.0-DB021(Android)多列排序实现方法咨询
如何将SQL的多条件排序转换为Couchbase Lite代码
你已经走对第一步啦!在Couchbase Lite里实现多条件排序特别直观,有两种常用方式可以完美对应ORDER BY Country ASC, CustomerID DESC的逻辑:
方式一:直接在orderBy()中传入多个排序规则
把多个Ordering实例作为参数传给orderBy()方法就行,参数顺序就对应SQL里排序条件的优先级:
Query query = QueryBuilder .select(SelectResult.all()) .from(DataSource.database(yourDatabaseInstance)) .orderBy( Ordering.property("Country").ascending(), Ordering.property("CustomerID").descending() );
方式二:用then()链式拼接排序条件
如果想让代码逻辑更连贯,也可以通过then()把多个排序规则串起来,前面的规则优先级最高,后续的then()会在前置条件无法区分顺序时生效:
Ordering multiSort = Ordering.property("Country").ascending() .then(Ordering.property("CustomerID").descending()); Query query = QueryBuilder .select(SelectResult.all()) .from(DataSource.database(yourDatabaseInstance)) .orderBy(multiSort);
两种方式效果完全一致:先按Country字段升序排列,当两条文档的Country值相同时,再按照CustomerID字段降序排列,和你给出的SQL语句逻辑完全匹配。
内容的提问来源于stack exchange,提问作者Itai.S.
相关产品推荐
相关产品推荐

