如何使用漂移(例如摩尔)从对象的属性中获取不同的值;扑动



TLDR: "SELECT DISTINCT category FROM item "有效地在漂移

有Item(或ItemsCompanion)数据类,其中有'String category'属性。我想有效地得到一个不同类别的列表。

I'm failed to find a way

  1. 在没有对象本身的情况下获取对象的结果属性
  2. 只过滤掉唯一的值

如有任何帮助,不胜感激。

我可以得到一个项目列表,迭代并把它的类别放在list中,将list转换为Set,但这似乎太低效了。

使用simolus3 https://stackoverflow.com/a/62359317/8108153的答案我明白了:

Future<List<String>> getItemsCategories() {
final query = selectOnly(items, distinct: true)
..addColumns([items.category])
..where(items.category.isNotNull());
;
return query.map((row) => row.read(items.category)).get();
}

不管这是不是最优的方法我想到的任何方法都要好得多

最新更新