flutter - 使用 moor_flutter 包在 sqlite db 表中获取具有相同列值的所有记录
问题描述
我有一张叫做联系人的表。我想where person_id = 1
在下面的联系人表中获取所有记录。
class Contacts extends Table {
IntColumn get id => integer().autoIncrement()();
TextColumn get contact_type => text().withLength(min: 1, max: 50)();
TextColumn get contact => text().withLength(min: 1, max: 100)();
IntColumn get person_id =>
integer().customConstraint('REFERENCES persons(id)')();
DateTimeColumn get created => dateTime()();
DateTimeColumn get updated => dateTime()();
}
如何select * from contacts where person_id = 1
使用moor_flutter执行?谢谢你,用爱发布。
解决方案
你应该看看文档。
你正在寻找这样的东西:
@UseMoor(tables: [Contacts])
class MyDatabase extends _$MyDatabase {
Future<List<Contact>> getContactByPersonId(int id) {
return (select(contacts)..where((c) => c.person_id.equals(id))).get();
}
}
推荐阅读
- c++ - 为什么我们真的需要特别是 C++ 编程中的指针
- python - 使用数据集 API 从 tensorflow 中的冻结模型进行推断
- android - 库 Glide/PhotoView/ZGallery 之间的冲突
- c# - 实体框架 - 通过虚拟关键字延迟加载 - 检测循环引用
- jquery - 点击事件触发和页面加载后如何运行代码
- google-bigquery - 两个视图之间的 BigQuery UNION ALL 会增加扫描字节数和查询成本
- ios - 在 MVP 架构中,对象类型 uinavigationitem 的标题应该设置在 viewcontroller 中还是 Presenter 中?
- adb - 如何解决这个 adb 服务器版本与 android 中的这个客户端错误不匹配?
- elasticsearch - 如何解决 '530 5.7.0 必须先发出 STARTTLS 命令。o63-v6sm4041934ywc.36 - 用于弹性搜索的 gsmtp\n'?
- vuejs2 - Vue2 - 如何重新创建组件?