Flutter SQLite如何仅读取数据库中title列的数据?
Flutter SQLite 仅读取单列数据的最优方式
你完全不需要用rawQuery,Flutter SQLite的query方法本身就支持指定要读取的列,这是比rawQuery更简洁且贴合你现有代码风格的最优方案。
只需要给query方法添加columns参数,传入包含目标列名的列表即可,针对你的需求,就是传入['title']:
// 仅读取title列的数据 static Future<List<Map<String, dynamic>>> getTitles() async { final db = await SQLHelper.db(); return db.query('items', columns: ['title'], orderBy: "id"); }
如果希望直接得到List<String>格式的结果(而非包含Map的列表),可以对返回结果做简单转换:
static Future<List<String>> getTitlesAsList() async { final db = await SQLHelper.db(); final List<Map<String, dynamic>> maps = await db.query('items', columns: ['title'], orderBy: "id"); return maps.map((map) => map['title'] as String).toList(); }
这种写法和你现有代码风格一致,利用了query方法的原生参数,比rawQuery更易读、更符合框架常规用法。
内容的提问来源于stack exchange,提问作者Renzo
相关产品推荐
相关产品推荐

