Flutter 检查SQFLITE数据库中存在PK列表中的哪些PK
对于长度为k的PK列表: listPK=[1,2,3…k] 我目前正在运行for循环,并查询数据库k次,以检查该项是否存在于数据库中Flutter 检查SQFLITE数据库中存在PK列表中的哪些PK,flutter,dart,Flutter,Dart,对于长度为k的PK列表: listPK=[1,2,3…k] 我目前正在运行for循环,并查询数据库k次,以检查该项是否存在于数据库中 List<bool> isPresent(List listPK)async{ final db = await database; List<bool> output = List.filled(listPK.length, false) for (var i = 0; i<listPk.length; i++){
List<bool> isPresent(List listPK)async{
final db = await database;
List<bool> output = List.filled(listPK.length, false)
for (var i = 0; i<listPk.length; i++){
List<Map> result = await db.query('elements', where: "id = ?", whereArgs: listPk[i]);
if (result[0] != null) {output[i] = true}
}
}
List-isPresent(List-listPK)异步{
最终数据库=等待数据库;
列表输出=List.filled(listPK.length,false)
对于(var i=0;i一次查询数据库并获取'elements'表中的所有id会更高效。一旦您拥有'elements'表中的所有id,您就可以遍历并找到哪些id存在,哪些不存在。一次查询数据库并获取'elements'表中的所有id会更高效。O一旦“元素”表中有了所有id,您就可以反复查看并找到哪些id存在,哪些不存在。使用WHERE…in
检查一次调用中的所有id
String listQuery=listPK.join(',');/“1,2,3,…,k”
字符串查询='SELECT*FROM table_name WHERE id IN($listQuery);`;
列表结果=wait db.rawQuery(查询);
使用中的WHERE…
检查一次呼叫中的所有ID
String listQuery=listPK.join(',');/“1,2,3,…,k”
字符串查询='SELECT*FROM table_name WHERE id IN($listQuery);`;
列表结果=wait db.rawQuery(查询);
提高效率的唯一方法是,如果数据库很小而k
很大,则效率更高。唯一提高效率的方法是,如果数据库很小而k
很大。