首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用moor_flutter包计算sqlite表中的记录?

如何使用moor_flutter包计算sqlite表中的记录?
EN

Stack Overflow用户
提问于 2020-01-17 12:21:22
回答 4查看 3.7K关注 0票数 8

如何使用颤动包对表中的所有行进行计数并从中获得行数?

我看过moor_flutter正式文档这里,但找不到我要找的东西。

我希望它会像下面的函数,根据crud函数在使用moor_flutter包时的相似之处,但它也不起作用。

代码语言:javascript
复制
Future<int<Person>> countPersons() => count(persons).get();
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2020-09-29 11:20:23

我想出了一种查找表行数的方法。这是一个完整的解决方案,有一些基本的注释,

代码语言:javascript
复制
//Create expression of count
var countExp = persons.id.count();

//Moor creates query from Expression so, they don't have value unless you execute it as query.  
//Following query will execute experssion on Table.
final query = selectOnly(persons)..addColumns([countExp]);
var result = await query.map((row) => row.read(countExp)).getSingle();

请注意,我使用的是selectOnly而不是select,因为除了Count之外,我对任何列都不感兴趣。

票数 10
EN

Stack Overflow用户

发布于 2021-02-23 17:51:11

如果您在计数时需要一个筛选条件,那么您可以将调用顶级函数countAll与命名参数filter放在一起,如下所示。

代码语言:javascript
复制
var count = countAll(filter: persons.id.isSmallerThanValue(100));
var res = await (selectOnly(persons)..addColumns([count]))
    .map((row) => row.read(count))
    .getSingle();

它现在被记录在正式文件中。

票数 3
EN

Stack Overflow用户

发布于 2021-04-03 22:52:56

在我看来,典型的摩尔人方式似乎有点令人困惑。如果你有同样的感觉,你可能会回到老派,尝试:

代码语言:javascript
复制
@UseDao(
  tables: [Instruments],
  queries: {
    'instrumentsCount': 'SELECT COUNT(*) FROM instruments;'
  },
)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59787254

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档